You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2017/05/05 14:58:38 UTC

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

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 02b335089 -> e2c783b2d


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSUtils.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSUtils.html
index 77e9b6c..fdf7de6 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSUtils.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestFSUtils.html
@@ -45,18 +45,18 @@
 <span class="sourceLineNo">037</span>import org.apache.hadoop.fs.FileSystem;<a name="line.37"></a>
 <span class="sourceLineNo">038</span>import org.apache.hadoop.fs.Path;<a name="line.38"></a>
 <span class="sourceLineNo">039</span>import org.apache.hadoop.fs.permission.FsPermission;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HConstants;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HDFSBlocksDistribution;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.fs.HFileSystem;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hdfs.DFSConfigKeys;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hdfs.DFSHedgedReadMetrics;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hdfs.DFSTestUtil;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hdfs.MiniDFSCluster;<a name="line.51"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HConstants;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HDFSBlocksDistribution;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.fs.HFileSystem;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hdfs.DFSConfigKeys;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hdfs.DFSHedgedReadMetrics;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hdfs.DFSTestUtil;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hdfs.MiniDFSCluster;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.junit.Before;<a name="line.51"></a>
 <span class="sourceLineNo">052</span>import org.junit.Test;<a name="line.52"></a>
 <span class="sourceLineNo">053</span>import org.junit.experimental.categories.Category;<a name="line.53"></a>
 <span class="sourceLineNo">054</span><a name="line.54"></a>
@@ -65,531 +65,515 @@
 <span class="sourceLineNo">057</span> */<a name="line.57"></a>
 <span class="sourceLineNo">058</span>@Category({MiscTests.class, MediumTests.class})<a name="line.58"></a>
 <span class="sourceLineNo">059</span>public class TestFSUtils {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>  /**<a name="line.60"></a>
-<span class="sourceLineNo">061</span>   * Test path compare and prefix checking.<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   * @throws IOException<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   */<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  @Test<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public void testMatchingTail() throws IOException {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    final FileSystem fs = htu.getTestFileSystem();<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    Path rootdir = htu.getDataTestDir();<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    assertTrue(rootdir.depth() &gt; 1);<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    Path partPath = new Path("a", "b");<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    Path fullPath = new Path(rootdir, partPath);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    Path fullyQualifiedPath = fs.makeQualified(fullPath);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    assertFalse(FSUtils.isMatchingTail(fullPath, partPath));<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    assertFalse(FSUtils.isMatchingTail(fullPath, partPath.toString()));<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    assertTrue(FSUtils.isStartingWithPath(rootdir, fullPath.toString()));<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    assertTrue(FSUtils.isStartingWithPath(fullyQualifiedPath, fullPath.toString()));<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    assertFalse(FSUtils.isStartingWithPath(rootdir, partPath.toString()));<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    assertFalse(FSUtils.isMatchingTail(fullyQualifiedPath, partPath));<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    assertTrue(FSUtils.isMatchingTail(fullyQualifiedPath, fullPath));<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    assertTrue(FSUtils.isMatchingTail(fullyQualifiedPath, fullPath.toString()));<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    assertTrue(FSUtils.isMatchingTail(fullyQualifiedPath, fs.makeQualified(fullPath)));<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    assertTrue(FSUtils.isStartingWithPath(rootdir, fullyQualifiedPath.toString()));<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    assertFalse(FSUtils.isMatchingTail(fullPath, new Path("x")));<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    assertFalse(FSUtils.isMatchingTail(new Path("x"), fullPath));<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>  @Test<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public void testVersion() throws DeserializationException, IOException {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    final FileSystem fs = htu.getTestFileSystem();<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    final Path rootdir = htu.getDataTestDir();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    assertNull(FSUtils.getVersion(fs, rootdir));<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    // Write out old format version file.  See if we can read it in and convert.<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    Path versionFile = new Path(rootdir, HConstants.VERSION_FILE_NAME);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    FSDataOutputStream s = fs.create(versionFile);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    final String version = HConstants.FILE_SYSTEM_VERSION;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    s.writeUTF(version);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    s.close();<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    assertTrue(fs.exists(versionFile));<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    FileStatus [] status = fs.listStatus(versionFile);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    assertNotNull(status);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    assertTrue(status.length &gt; 0);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    String newVersion = FSUtils.getVersion(fs, rootdir);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    assertEquals(version.length(), newVersion.length());<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    assertEquals(version, newVersion);<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // File will have been converted. Exercise the pb format<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    assertEquals(version, FSUtils.getVersion(fs, rootdir));<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    FSUtils.checkVersion(fs, rootdir, true);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  @Test public void testIsHDFS() throws Exception {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    assertFalse(FSUtils.isHDFS(htu.getConfiguration()));<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    MiniDFSCluster cluster = null;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    try {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      cluster = htu.startMiniDFSCluster(1);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      assertTrue(FSUtils.isHDFS(htu.getConfiguration()));<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    } finally {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      if (cluster != null) cluster.shutdown();<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    }<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  private void WriteDataToHDFS(FileSystem fs, Path file, int dataSize)<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    throws Exception {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    FSDataOutputStream out = fs.create(file);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    byte [] data = new byte[dataSize];<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    out.write(data, 0, dataSize);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    out.close();<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>  @Test public void testcomputeHDFSBlocksDistribution() throws Exception {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    final int DEFAULT_BLOCK_SIZE = 1024;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    htu.getConfiguration().setLong("dfs.blocksize", DEFAULT_BLOCK_SIZE);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    MiniDFSCluster cluster = null;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    Path testFile = null;<a name="line.136"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private HBaseTestingUtility htu;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private FileSystem fs;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  private Configuration conf;<a name="line.63"></a>
+<span class="sourceLineNo">064</span><a name="line.64"></a>
+<span class="sourceLineNo">065</span>  @Before<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public void setUp() throws IOException {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    htu = new HBaseTestingUtility();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    fs = htu.getTestFileSystem();<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    conf = htu.getConfiguration();<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  /**<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * Test path compare and prefix checking.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * @throws IOException<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  @Test<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public void testMatchingTail() throws IOException {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    Path rootdir = htu.getDataTestDir();<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    assertTrue(rootdir.depth() &gt; 1);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    Path partPath = new Path("a", "b");<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    Path fullPath = new Path(rootdir, partPath);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    Path fullyQualifiedPath = fs.makeQualified(fullPath);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    assertFalse(FSUtils.isMatchingTail(fullPath, partPath));<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    assertFalse(FSUtils.isMatchingTail(fullPath, partPath.toString()));<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    assertTrue(FSUtils.isStartingWithPath(rootdir, fullPath.toString()));<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    assertTrue(FSUtils.isStartingWithPath(fullyQualifiedPath, fullPath.toString()));<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    assertFalse(FSUtils.isStartingWithPath(rootdir, partPath.toString()));<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    assertFalse(FSUtils.isMatchingTail(fullyQualifiedPath, partPath));<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    assertTrue(FSUtils.isMatchingTail(fullyQualifiedPath, fullPath));<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    assertTrue(FSUtils.isMatchingTail(fullyQualifiedPath, fullPath.toString()));<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    assertTrue(FSUtils.isMatchingTail(fullyQualifiedPath, fs.makeQualified(fullPath)));<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    assertTrue(FSUtils.isStartingWithPath(rootdir, fullyQualifiedPath.toString()));<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    assertFalse(FSUtils.isMatchingTail(fullPath, new Path("x")));<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    assertFalse(FSUtils.isMatchingTail(new Path("x"), fullPath));<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>  @Test<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  public void testVersion() throws DeserializationException, IOException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    final Path rootdir = htu.getDataTestDir();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    assertNull(FSUtils.getVersion(fs, rootdir));<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    // Write out old format version file.  See if we can read it in and convert.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    Path versionFile = new Path(rootdir, HConstants.VERSION_FILE_NAME);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    FSDataOutputStream s = fs.create(versionFile);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    final String version = HConstants.FILE_SYSTEM_VERSION;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    s.writeUTF(version);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    s.close();<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    assertTrue(fs.exists(versionFile));<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    FileStatus [] status = fs.listStatus(versionFile);<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    assertNotNull(status);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    assertTrue(status.length &gt; 0);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    String newVersion = FSUtils.getVersion(fs, rootdir);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    assertEquals(version.length(), newVersion.length());<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    assertEquals(version, newVersion);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    // File will have been converted. Exercise the pb format<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    assertEquals(version, FSUtils.getVersion(fs, rootdir));<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    FSUtils.checkVersion(fs, rootdir, true);<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>  @Test public void testIsHDFS() throws Exception {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    assertFalse(FSUtils.isHDFS(conf));<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    MiniDFSCluster cluster = null;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    try {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      cluster = htu.startMiniDFSCluster(1);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      assertTrue(FSUtils.isHDFS(conf));<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    } finally {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      if (cluster != null) cluster.shutdown();<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><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  private void WriteDataToHDFS(FileSystem fs, Path file, int dataSize)<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    throws Exception {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    FSDataOutputStream out = fs.create(file);<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    byte [] data = new byte[dataSize];<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    out.write(data, 0, dataSize);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    out.close();<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>    try {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      // set up a cluster with 3 nodes<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      String hosts[] = new String[] { "host1", "host2", "host3" };<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      cluster = htu.startMiniDFSCluster(hosts);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      cluster.waitActive();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      FileSystem fs = cluster.getFileSystem();<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>      // create a file with two blocks<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      testFile = new Path("/test1.txt");<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      WriteDataToHDFS(fs, testFile, 2*DEFAULT_BLOCK_SIZE);<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>      // given the default replication factor is 3, the same as the number of<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // datanodes; the locality index for each host should be 100%,<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      // or getWeight for each host should be the same as getUniqueBlocksWeights<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      final long maxTime = System.currentTimeMillis() + 2000;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      boolean ok;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      do {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        ok = true;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        FileStatus status = fs.getFileStatus(testFile);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        HDFSBlocksDistribution blocksDistribution =<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          FSUtils.computeHDFSBlocksDistribution(fs, status, 0, status.getLen());<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        long uniqueBlocksTotalWeight =<a name="line.159"></a>
-<span class="sourceLineNo">160</span>          blocksDistribution.getUniqueBlocksTotalWeight();<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        for (String host : hosts) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>          long weight = blocksDistribution.getWeight(host);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>          ok = (ok &amp;&amp; uniqueBlocksTotalWeight == weight);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      } while (!ok &amp;&amp; System.currentTimeMillis() &lt; maxTime);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      assertTrue(ok);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      } finally {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      htu.shutdownMiniDFSCluster();<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><a name="line.171"></a>
-<span class="sourceLineNo">172</span>    try {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      // set up a cluster with 4 nodes<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      String hosts[] = new String[] { "host1", "host2", "host3", "host4" };<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      cluster = htu.startMiniDFSCluster(hosts);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      cluster.waitActive();<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      FileSystem fs = cluster.getFileSystem();<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>      // create a file with three blocks<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      testFile = new Path("/test2.txt");<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      WriteDataToHDFS(fs, testFile, 3*DEFAULT_BLOCK_SIZE);<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>      // given the default replication factor is 3, we will have total of 9<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // replica of blocks; thus the host with the highest weight should have<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      // weight == 3 * DEFAULT_BLOCK_SIZE<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      final long maxTime = System.currentTimeMillis() + 2000;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      long weight;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      long uniqueBlocksTotalWeight;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      do {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        FileStatus status = fs.getFileStatus(testFile);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        HDFSBlocksDistribution blocksDistribution =<a name="line.191"></a>
-<span class="sourceLineNo">192</span>          FSUtils.computeHDFSBlocksDistribution(fs, status, 0, status.getLen());<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        uniqueBlocksTotalWeight = blocksDistribution.getUniqueBlocksTotalWeight();<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>        String tophost = blocksDistribution.getTopHosts().get(0);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        weight = blocksDistribution.getWeight(tophost);<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>        // NameNode is informed asynchronously, so we may have a delay. See HBASE-6175<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      } while (uniqueBlocksTotalWeight != weight &amp;&amp; System.currentTimeMillis() &lt; maxTime);<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      assertTrue(uniqueBlocksTotalWeight == weight);<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>    } finally {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      htu.shutdownMiniDFSCluster();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>    try {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      // set up a cluster with 4 nodes<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      String hosts[] = new String[] { "host1", "host2", "host3", "host4" };<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      cluster = htu.startMiniDFSCluster(hosts);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      cluster.waitActive();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      FileSystem fs = cluster.getFileSystem();<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>      // create a file with one block<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      testFile = new Path("/test3.txt");<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      WriteDataToHDFS(fs, testFile, DEFAULT_BLOCK_SIZE);<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // given the default replication factor is 3, we will have total of 3<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      // replica of blocks; thus there is one host without weight<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      final long maxTime = System.currentTimeMillis() + 2000;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      HDFSBlocksDistribution blocksDistribution;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      do {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        FileStatus status = fs.getFileStatus(testFile);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        blocksDistribution = FSUtils.computeHDFSBlocksDistribution(fs, status, 0, status.getLen());<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // NameNode is informed asynchronously, so we may have a delay. See HBASE-6175<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      }<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      while (blocksDistribution.getTopHosts().size() != 3 &amp;&amp; System.currentTimeMillis() &lt; maxTime);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      assertEquals("Wrong number of hosts distributing blocks.", 3,<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        blocksDistribution.getTopHosts().size());<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    } finally {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      htu.shutdownMiniDFSCluster();<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  }<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>  @Test<a name="line.235"></a>
-<span class="sourceLineNo">236</span>  public void testPermMask() throws Exception {<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    Configuration conf = HBaseConfiguration.create();<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    FileSystem fs = FileSystem.get(conf);<a name="line.239"></a>
+<span class="sourceLineNo">138</span>  @Test public void testcomputeHDFSBlocksDistribution() throws Exception {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    final int DEFAULT_BLOCK_SIZE = 1024;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    conf.setLong("dfs.blocksize", DEFAULT_BLOCK_SIZE);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    MiniDFSCluster cluster = null;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    Path testFile = null;<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>    try {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      // set up a cluster with 3 nodes<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      String hosts[] = new String[] { "host1", "host2", "host3" };<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      cluster = htu.startMiniDFSCluster(hosts);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      cluster.waitActive();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      FileSystem fs = cluster.getFileSystem();<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>      // create a file with two blocks<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      testFile = new Path("/test1.txt");<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      WriteDataToHDFS(fs, testFile, 2*DEFAULT_BLOCK_SIZE);<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>      // given the default replication factor is 3, the same as the number of<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      // datanodes; the locality index for each host should be 100%,<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      // or getWeight for each host should be the same as getUniqueBlocksWeights<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      final long maxTime = System.currentTimeMillis() + 2000;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      boolean ok;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      do {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        ok = true;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        FileStatus status = fs.getFileStatus(testFile);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        HDFSBlocksDistribution blocksDistribution =<a name="line.163"></a>
+<span class="sourceLineNo">164</span>          FSUtils.computeHDFSBlocksDistribution(fs, status, 0, status.getLen());<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        long uniqueBlocksTotalWeight =<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          blocksDistribution.getUniqueBlocksTotalWeight();<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        for (String host : hosts) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>          long weight = blocksDistribution.getWeight(host);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>          ok = (ok &amp;&amp; uniqueBlocksTotalWeight == weight);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        }<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      } while (!ok &amp;&amp; System.currentTimeMillis() &lt; maxTime);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      assertTrue(ok);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      } finally {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      htu.shutdownMiniDFSCluster();<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    }<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>    try {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      // set up a cluster with 4 nodes<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      String hosts[] = new String[] { "host1", "host2", "host3", "host4" };<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      cluster = htu.startMiniDFSCluster(hosts);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      cluster.waitActive();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      FileSystem fs = cluster.getFileSystem();<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>      // create a file with three blocks<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      testFile = new Path("/test2.txt");<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      WriteDataToHDFS(fs, testFile, 3*DEFAULT_BLOCK_SIZE);<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>      // given the default replication factor is 3, we will have total of 9<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      // replica of blocks; thus the host with the highest weight should have<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      // weight == 3 * DEFAULT_BLOCK_SIZE<a name="line.191"></a>
+<span class="sourceLineNo">192</span>      final long maxTime = System.currentTimeMillis() + 2000;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      long weight;<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      long uniqueBlocksTotalWeight;<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      do {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        FileStatus status = fs.getFileStatus(testFile);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        HDFSBlocksDistribution blocksDistribution =<a name="line.197"></a>
+<span class="sourceLineNo">198</span>          FSUtils.computeHDFSBlocksDistribution(fs, status, 0, status.getLen());<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        uniqueBlocksTotalWeight = blocksDistribution.getUniqueBlocksTotalWeight();<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>        String tophost = blocksDistribution.getTopHosts().get(0);<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        weight = blocksDistribution.getWeight(tophost);<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>        // NameNode is informed asynchronously, so we may have a delay. See HBASE-6175<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      } while (uniqueBlocksTotalWeight != weight &amp;&amp; System.currentTimeMillis() &lt; maxTime);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      assertTrue(uniqueBlocksTotalWeight == weight);<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    } finally {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      htu.shutdownMiniDFSCluster();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>    try {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      // set up a cluster with 4 nodes<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      String hosts[] = new String[] { "host1", "host2", "host3", "host4" };<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      cluster = htu.startMiniDFSCluster(hosts);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      cluster.waitActive();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      FileSystem fs = cluster.getFileSystem();<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>      // create a file with one block<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      testFile = new Path("/test3.txt");<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      WriteDataToHDFS(fs, testFile, DEFAULT_BLOCK_SIZE);<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>      // given the default replication factor is 3, we will have total of 3<a name="line.224"></a>
+<span class="sourceLineNo">225</span>      // replica of blocks; thus there is one host without weight<a name="line.225"></a>
+<span class="sourceLineNo">226</span>      final long maxTime = System.currentTimeMillis() + 2000;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      HDFSBlocksDistribution blocksDistribution;<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      do {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>        FileStatus status = fs.getFileStatus(testFile);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        blocksDistribution = FSUtils.computeHDFSBlocksDistribution(fs, status, 0, status.getLen());<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        // NameNode is informed asynchronously, so we may have a delay. See HBASE-6175<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      while (blocksDistribution.getTopHosts().size() != 3 &amp;&amp; System.currentTimeMillis() &lt; maxTime);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      assertEquals("Wrong number of hosts distributing blocks.", 3,<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        blocksDistribution.getTopHosts().size());<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    } finally {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      htu.shutdownMiniDFSCluster();<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>    // default fs permission<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    FsPermission defaultFsPerm = FSUtils.getFilePermissions(fs, conf,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        HConstants.DATA_FILE_UMASK_KEY);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    // 'hbase.data.umask.enable' is false. We will get default fs permission.<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    assertEquals(FsPermission.getFileDefault(), defaultFsPerm);<a name="line.245"></a>
-<span class="sourceLineNo">246</span><a name="line.246"></a>
-<span class="sourceLineNo">247</span>    conf.setBoolean(HConstants.ENABLE_DATA_FILE_UMASK, true);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    // first check that we don't crash if we don't have perms set<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    FsPermission defaultStartPerm = FSUtils.getFilePermissions(fs, conf,<a name="line.249"></a>
-<span class="sourceLineNo">250</span>        HConstants.DATA_FILE_UMASK_KEY);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    // default 'hbase.data.umask'is 000, and this umask will be used when<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    // 'hbase.data.umask.enable' is true.<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // Therefore we will not get the real fs default in this case.<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    // Instead we will get the starting point FULL_RWX_PERMISSIONS<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    assertEquals(new FsPermission(FSUtils.FULL_RWX_PERMISSIONS), defaultStartPerm);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    conf.setStrings(HConstants.DATA_FILE_UMASK_KEY, "077");<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    // now check that we get the right perms<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    FsPermission filePerm = FSUtils.getFilePermissions(fs, conf,<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        HConstants.DATA_FILE_UMASK_KEY);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    assertEquals(new FsPermission("700"), filePerm);<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // then that the correct file is created<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    Path p = new Path("target" + File.separator + UUID.randomUUID().toString());<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    try {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      FSDataOutputStream out = FSUtils.create(conf, fs, p, filePerm, null);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>      out.close();<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      FileStatus stat = fs.getFileStatus(p);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      assertEquals(new FsPermission("700"), stat.getPermission());<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      // and then cleanup<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    } finally {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      fs.delete(p, true);<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>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  @Test<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public void testDeleteAndExists() throws Exception {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    Configuration conf = htu.getConfiguration();<a name="line.279"></a>
+<span class="sourceLineNo">241</span>  @Test<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  public void testPermMask() throws Exception {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    // default fs permission<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    FsPermission defaultFsPerm = FSUtils.getFilePermissions(fs, conf,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        HConstants.DATA_FILE_UMASK_KEY);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    // 'hbase.data.umask.enable' is false. We will get default fs permission.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    assertEquals(FsPermission.getFileDefault(), defaultFsPerm);<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    conf.setBoolean(HConstants.ENABLE_DATA_FILE_UMASK, true);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    // first check that we don't crash if we don't have perms set<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    FsPermission defaultStartPerm = FSUtils.getFilePermissions(fs, conf,<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        HConstants.DATA_FILE_UMASK_KEY);<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    // default 'hbase.data.umask'is 000, and this umask will be used when<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    // 'hbase.data.umask.enable' is true.<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    // Therefore we will not get the real fs default in this case.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    // Instead we will get the starting point FULL_RWX_PERMISSIONS<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    assertEquals(new FsPermission(FSUtils.FULL_RWX_PERMISSIONS), defaultStartPerm);<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>    conf.setStrings(HConstants.DATA_FILE_UMASK_KEY, "077");<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    // now check that we get the right perms<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    FsPermission filePerm = FSUtils.getFilePermissions(fs, conf,<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        HConstants.DATA_FILE_UMASK_KEY);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    assertEquals(new FsPermission("700"), filePerm);<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    // then that the correct file is created<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    Path p = new Path("target" + File.separator + UUID.randomUUID().toString());<a name="line.266"></a>
+<span class="sourceLineNo">267</span>    try {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      FSDataOutputStream out = FSUtils.create(conf, fs, p, filePerm, null);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      out.close();<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      FileStatus stat = fs.getFileStatus(p);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      assertEquals(new FsPermission("700"), stat.getPermission());<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      // and then cleanup<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    } finally {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      fs.delete(p, true);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Test<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void testDeleteAndExists() throws Exception {<a name="line.279"></a>
 <span class="sourceLineNo">280</span>    conf.setBoolean(HConstants.ENABLE_DATA_FILE_UMASK, true);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    FileSystem fs = FileSystem.get(conf);<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    FsPermission perms = FSUtils.getFilePermissions(fs, conf, HConstants.DATA_FILE_UMASK_KEY);<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    // then that the correct file is created<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    String file = UUID.randomUUID().toString();<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    Path p = new Path(htu.getDataTestDir(), "temptarget" + File.separator + file);<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    Path p1 = new Path(htu.getDataTestDir(), "temppath" + File.separator + file);<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    try {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      FSDataOutputStream out = FSUtils.create(conf, fs, p, perms, null);<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      out.close();<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      assertTrue("The created file should be present", FSUtils.isExists(fs, p));<a name="line.290"></a>
-<span class="sourceLineNo">291</span>      // delete the file with recursion as false. Only the file will be deleted.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      FSUtils.delete(fs, p, false);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      // Create another file<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      FSDataOutputStream out1 = FSUtils.create(conf, fs, p1, perms, null);<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      out1.close();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      // delete the file with recursion as false. Still the file only will be deleted<a name="line.296"></a>
-<span class="sourceLineNo">297</span>      FSUtils.delete(fs, p1, true);<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      assertFalse("The created file should be present", FSUtils.isExists(fs, p1));<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      // and then cleanup<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    } finally {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      FSUtils.delete(fs, p, true);<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      FSUtils.delete(fs, p1, true);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    }<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>  @Test<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  public void testRenameAndSetModifyTime() throws Exception {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    Configuration conf = htu.getConfiguration();<a name="line.309"></a>
-<span class="sourceLineNo">310</span><a name="line.310"></a>
-<span class="sourceLineNo">311</span>    MiniDFSCluster cluster = htu.startMiniDFSCluster(1);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    assertTrue(FSUtils.isHDFS(conf));<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>    FileSystem fs = FileSystem.get(conf);<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    Path testDir = htu.getDataTestDirOnTestFS("testArchiveFile");<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span>    String file = UUID.randomUUID().toString();<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    Path p = new Path(testDir, file);<a name="line.318"></a>
+<span class="sourceLineNo">281</span>    FsPermission perms = FSUtils.getFilePermissions(fs, conf, HConstants.DATA_FILE_UMASK_KEY);<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    // then that the correct file is created<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    String file = UUID.randomUUID().toString();<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    Path p = new Path(htu.getDataTestDir(), "temptarget" + File.separator + file);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    Path p1 = new Path(htu.getDataTestDir(), "temppath" + File.separator + file);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    try {<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      FSDataOutputStream out = FSUtils.create(conf, fs, p, perms, null);<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      out.close();<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      assertTrue("The created file should be present", FSUtils.isExists(fs, p));<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      // delete the file with recursion as false. Only the file will be deleted.<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      FSUtils.delete(fs, p, false);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      // Create another file<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      FSDataOutputStream out1 = FSUtils.create(conf, fs, p1, perms, null);<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      out1.close();<a name="line.294"></a>
+<span class="sourceLineNo">295</span>      // delete the file with recursion as false. Still the file only will be deleted<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      FSUtils.delete(fs, p1, true);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>      assertFalse("The created file should be present", FSUtils.isExists(fs, p1));<a name="line.297"></a>
+<span class="sourceLineNo">298</span>      // and then cleanup<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    } finally {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      FSUtils.delete(fs, p, true);<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      FSUtils.delete(fs, p1, true);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  @Test<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public void testRenameAndSetModifyTime() throws Exception {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    MiniDFSCluster cluster = htu.startMiniDFSCluster(1);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    assertTrue(FSUtils.isHDFS(conf));<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>    FileSystem fs = FileSystem.get(conf);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    Path testDir = htu.getDataTestDirOnTestFS("testArchiveFile");<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span>    String file = UUID.randomUUID().toString();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    Path p = new Path(testDir, file);<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    FSDataOutputStream out = fs.create(p);<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    out.close();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    assertTrue("The created file should be present", FSUtils.isExists(fs, p));<a name="line.318"></a>
 <span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    FSDataOutputStream out = fs.create(p);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    out.close();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    assertTrue("The created file should be present", FSUtils.isExists(fs, p));<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>    long expect = System.currentTimeMillis() + 1000;<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    assertNotEquals(expect, fs.getFileStatus(p).getModificationTime());<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span>    ManualEnvironmentEdge mockEnv = new ManualEnvironmentEdge();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    mockEnv.setValue(expect);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    EnvironmentEdgeManager.injectEdge(mockEnv);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    try {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      String dstFile = UUID.randomUUID().toString();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      Path dst = new Path(testDir , dstFile);<a name="line.332"></a>
+<span class="sourceLineNo">320</span>    long expect = System.currentTimeMillis() + 1000;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    assertNotEquals(expect, fs.getFileStatus(p).getModificationTime());<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>    ManualEnvironmentEdge mockEnv = new ManualEnvironmentEdge();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    mockEnv.setValue(expect);<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    EnvironmentEdgeManager.injectEdge(mockEnv);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    try {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      String dstFile = UUID.randomUUID().toString();<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      Path dst = new Path(testDir , dstFile);<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>      assertTrue(FSUtils.renameAndSetModifyTime(fs, p, dst));<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      assertFalse("The moved file should not be present", FSUtils.isExists(fs, p));<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      assertTrue("The dst file should be present", FSUtils.isExists(fs, dst));<a name="line.332"></a>
 <span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>      assertTrue(FSUtils.renameAndSetModifyTime(fs, p, dst));<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      assertFalse("The moved file should not be present", FSUtils.isExists(fs, p));<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      assertTrue("The dst file should be present", FSUtils.isExists(fs, dst));<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>      assertEquals(expect, fs.getFileStatus(dst).getModificationTime());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>      cluster.shutdown();<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    } finally {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      EnvironmentEdgeManager.reset();<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>  private void verifyFileInDirWithStoragePolicy(final String policy) throws Exception {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    Configuration conf = htu.getConfiguration();<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    conf.set(HConstants.WAL_STORAGE_POLICY, policy);<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>    MiniDFSCluster cluster = htu.startMiniDFSCluster(1);<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    try {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      assertTrue(FSUtils.isHDFS(conf));<a name="line.352"></a>
-<span class="sourceLineNo">353</span><a name="line.353"></a>
-<span class="sourceLineNo">354</span>      FileSystem fs = FileSystem.get(conf);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      Path testDir = htu.getDataTestDirOnTestFS("testArchiveFile");<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      fs.mkdirs(testDir);<a name="line.356"></a>
-<span class="sourceLineNo">357</span><a name="line.357"></a>
-<span class="sourceLineNo">358</span>      FSUtils.setStoragePolicy(fs, conf, testDir, HConstants.WAL_STORAGE_POLICY,<a name="line.358"></a>
-<span class="sourceLineNo">359</span>          HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.359"></a>
-<span class="sourceLineNo">360</span><a name="line.360"></a>
-<span class="sourceLineNo">361</span>      String file = UUID.randomUUID().toString();<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      Path p = new Path(testDir, file);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      WriteDataToHDFS(fs, p, 4096);<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      // will assert existance before deleting.<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      cleanupFile(fs, testDir);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    } finally {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      cluster.shutdown();<a name="line.367"></a>
-<span class="sourceLineNo">368</span>    }<a name="line.368"></a>
-<span class="sourceLineNo">369</span>  }<a name="line.369"></a>
-<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">334</span>      assertEquals(expect, fs.getFileStatus(dst).getModificationTime());<a name="line.334"></a>
+<span class="sourceLineNo">335</span>      cluster.shutdown();<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    } finally {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      EnvironmentEdgeManager.reset();<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><a name="line.340"></a>
+<span class="sourceLineNo">341</span>  private void verifyFileInDirWithStoragePolicy(final String policy) throws Exception {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    conf.set(HConstants.WAL_STORAGE_POLICY, policy);<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span>    MiniDFSCluster cluster = htu.startMiniDFSCluster(1);<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    try {<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      assertTrue(FSUtils.isHDFS(conf));<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>      FileSystem fs = FileSystem.get(conf);<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      Path testDir = htu.getDataTestDirOnTestFS("testArchiveFile");<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      fs.mkdirs(testDir);<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span>      FSUtils.setStoragePolicy(fs, conf, testDir, HConstants.WAL_STORAGE_POLICY,<a name="line.352"></a>
+<span class="sourceLineNo">353</span>          HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>      String file = UUID.randomUUID().toString();<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      Path p = new Path(testDir, file);<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      WriteDataToHDFS(fs, p, 4096);<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      // will assert existance before deleting.<a name="line.358"></a>
+<span class="sourceLineNo">359</span>      cleanupFile(fs, testDir);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    } finally {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      cluster.shutdown();<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Test<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public void testSetStoragePolicyDefault() throws Exception {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    verifyFileInDirWithStoragePolicy(HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.367"></a>
+<span class="sourceLineNo">368</span>  }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span>  /* might log a warning, but still work. (always warning on Hadoop &lt; 2.6.0) */<a name="line.370"></a>
 <span class="sourceLineNo">371</span>  @Test<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  public void testSetStoragePolicyDefault() throws Exception {<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    verifyFileInDirWithStoragePolicy(HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.373"></a>
+<span class="sourceLineNo">372</span>  public void testSetStoragePolicyValidButMaybeNotPresent() throws Exception {<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    verifyFileInDirWithStoragePolicy("ALL_SSD");<a name="line.373"></a>
 <span class="sourceLineNo">374</span>  }<a name="line.374"></a>
 <span class="sourceLineNo">375</span><a name="line.375"></a>
-<span class="sourceLineNo">376</span>  /* might log a warning, but still work. (always warning on Hadoop &lt; 2.6.0) */<a name="line.376"></a>
+<span class="sourceLineNo">376</span>  /* should log a warning, but still work. (different warning on Hadoop &lt; 2.6.0) */<a name="line.376"></a>
 <span class="sourceLineNo">377</span>  @Test<a name="line.377"></a>
-<span class="sourceLineNo">378</span>  public void testSetStoragePolicyValidButMaybeNotPresent() throws Exception {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    verifyFileInDirWithStoragePolicy("ALL_SSD");<a name="line.379"></a>
+<span class="sourceLineNo">378</span>  public void testSetStoragePolicyInvalid() throws Exception {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    verifyFileInDirWithStoragePolicy("1772");<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>  /* should log a warning, but still work. (different warning on Hadoop &lt; 2.6.0) */<a name="line.382"></a>
-<span class="sourceLineNo">383</span>  @Test<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  public void testSetStoragePolicyInvalid() throws Exception {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    verifyFileInDirWithStoragePolicy("1772");<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>  @Test<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  public void testSetWALRootDir() throws Exception {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>    Configuration conf = htu.getConfiguration();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>    Path p = new Path("file:///hbase/root");<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    FSUtils.setWALRootDir(conf, p);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    assertEquals(p.toString(), conf.get(HFileSystem.HBASE_WAL_DIR));<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>  @Test<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  public void testGetWALRootDir() throws IOException {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    Configuration conf = htu.getConfiguration();<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    Path root = new Path("file:///hbase/root");<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    Path walRoot = new Path("file:///hbase/logroot");<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    FSUtils.setRootDir(conf, root);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    assertEquals(FSUtils.getRootDir(conf), root);<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    assertEquals(FSUtils.getWALRootDir(conf), root);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    FSUtils.setWALRootDir(conf, walRoot);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    assertEquals(FSUtils.getWALRootDir(conf), walRoot);<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  }<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  @Test(expected=IllegalStateException.class)<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void testGetWALRootDirIllegalWALDir() throws IOException {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.412"></a>
-<span class="sourceLineNo">413</span>    Configuration conf = htu.getConfiguration();<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    Path root = new Path("file:///hbase/root");<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    Path invalidWALDir = new Path("file:///hbase/root/logroot");<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    FSUtils.setRootDir(conf, root);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    FSUtils.setWALRootDir(conf, invalidWALDir);<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    FSUtils.getWALRootDir(conf);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>  }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  @Test<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  public void testRemoveWALRootPath() throws Exception {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    Configuration conf = htu.getConfiguration();<a name="line.424"></a>
-<span class="sourceLineNo">425</span>    FSUtils.setRootDir(conf, new Path("file:///user/hbase"));<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    Path testFile = new Path(FSUtils.getRootDir(conf), "test/testfile");<a name="line.426"></a>
-<span class="sourceLineNo">427</span>    Path tmpFile = new Path("file:///test/testfile");<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    assertEquals(FSUtils.removeWALRootPath(testFile, conf), "test/testfile");<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    assertEquals(FSUtils.removeWALRootPath(tmpFile, conf), tmpFile.toString());<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    FSUtils.setWALRootDir(conf, new Path("file:///user/hbaseLogDir"));<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    assertEquals(FSUtils.removeWALRootPath(testFile, conf), testFile.toString());<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    Path logFile = new Path(FSUtils.getWALRootDir(conf), "test/testlog");<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    assertEquals(FSUtils.removeWALRootPath(logFile, conf), "test/testlog");<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>   * Ugly test that ensures we can get at the hedged read counters in dfsclient.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * Does a bit of preading with hedged reads enabled using code taken from hdfs TestPread.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   * @throws Exception<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   */<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  @Test public void testDFSHedgedReadMetrics() throws Exception {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    HBaseTestingUtility htu = new HBaseTestingUtility();<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    // Enable hedged reads and set it so the threshold is really low.<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    // Most of this test is taken from HDFS, from TestPread.<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    Configuration conf = htu.getConfiguration();<a name="line.445"></a>
-<span class="sourceLineNo">446</span>    conf.setInt(DFSConfigKeys.DFS_DFSCLIENT_HEDGED_READ_THREADPOOL_SIZE, 5);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    conf.setLong(DFSConfigKeys.DFS_DFSCLIENT_HEDGED_READ_THRESHOLD_MILLIS, 0);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    conf.setLong(DFSConfigKeys.DFS_BLOCK_SIZE_KEY, 4096);<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    conf.setLong(DFSConfigKeys.DFS_CLIENT_READ_PREFETCH_SIZE_KEY, 4096);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    // Set short retry timeouts so this test runs faster<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    conf.setInt(DFSConfigKeys.DFS_CLIENT_RETRY_WINDOW_BASE, 0);<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    conf.setBoolean("dfs.datanode.transferTo.allowed", false);<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).numDataNodes(3).build();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    // Get the metrics.  Should be empty.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    DFSHedgedReadMetrics metrics = FSUtils.getDFSHedgedReadMetrics(conf);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    assertEquals(0, metrics.getHedgedReadOps());<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    FileSystem fileSys = cluster.getFileSystem();<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    try {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>      Path p = new Path("preadtest.dat");<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      // We need &gt; 1 blocks to test out the hedged reads.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      DFSTestUtil.createFile(fileSys, p, 12 * blockSize, 12 * blockSize,<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        blockSize, (short) 3, seed);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      pReadFile(fileSys, p);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      cleanupFile(fileSys, p);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      assertTrue(metrics.getHedgedReadOps() &gt; 0);<a name="line.465"></a>
-<span class="sourceLineNo">466</span>    } finally {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>      fileSys.close();<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      cluster.shutdown();<a name="line.468"></a>
-<span class="sourceLineNo">469</span>    }<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span>  // Below is taken from TestPread over in HDFS.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>  static final int blockSize = 4096;<a name="line.473"></a>
-<span class="sourceLineNo">474</span>  static final long seed = 0xDEADBEEFL;<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  private void pReadFile(FileSystem fileSys, Path name) throws IOException {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    FSDataInputStream stm = fileSys.open(name);<a name="line.477"></a>
-<span class="sourceLineNo">478</span>    byte[] expected = new byte[12 * blockSize];<a name="line.478"></a>
-<span class="sourceLineNo">479</span>    Random rand = new Random(seed);<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    rand.nextBytes(expected);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>    // do a sanity check. Read first 4K bytes<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    byte[] actual = new byte[4096];<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    stm.readFully(actual);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>    checkAndEraseData(actual, 0, expected, "Read Sanity Test");<a name="line.484"></a>
-<span class="sourceLineNo">485</span>    // now do a pread for the first 8K bytes<a name="line.485"></a>
-<span class="sourceLineNo">486</span>    actual = new byte[8192];<a name="line.486"></a>
-<span class="sourceLineNo">487</span>    doPread(stm, 0L, actual, 0, 8192);<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    checkAndEraseData(actual, 0, expected, "Pread Test 1");<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    // Now check to see if the normal read returns 4K-8K byte range<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    actual = new byte[4096];<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    stm.readFully(actual);<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    checkAndEraseData(actual, 4096, expected, "Pread Test 2");<a name="line.492"></a>
-<span class="sourceLineNo">493</span>    // Now see if we can cross a single block boundary successfully<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    // read 4K bytes from blockSize - 2K offset<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    stm.readFully(blockSize - 2048, actual, 0, 4096);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>    checkAndEraseData(actual, (blockSize - 2048), expected, "Pread Test 3");<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    // now see if we can cross two block boundaries successfully<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // read blockSize + 4K bytes from blockSize - 2K offset<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    actual = new byte[blockSize + 4096];<a name="line.499"></a>
-<span class="sourceLineNo">500</span>    stm.readFully(blockSize - 2048, actual);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    checkAndEraseData(actual, (blockSize - 2048), expected, "Pread Test 4");<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    // now see if we can cross two block boundaries that are not cached<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    // read blockSize + 4K bytes from 10*blockSize - 2K offset<a name="line.503"></a>
-<span class="sourceLineNo">504</span>    actual = new byte[blockSize + 4096];<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    stm.readFully(10 * blockSize - 2048, actual);<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    checkAndEraseData(actual, (10 * blockSize - 2048), expected, "Pread Test 5");<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    // now check that even after all these preads, we can still read<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    // bytes 8K-12K<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    actual = new byte[4096];<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    stm.readFully(actual);<a name="line.510"></a>
-<span class="sourceLineNo">511</span>    checkAndEraseData(actual, 8192, expected, "Pread Test 6");<a name="line.511"></a>
-<span class="sourceLineNo">512</span>    // done<a name="line.512"></a>
-<span class="sourceLineNo">513</span>    stm.close();<a name="line.513"></a>
-<span class="sourceLineNo">514</span>    // check block location caching<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    stm = fileSys.open(name);<a name="line.515"></a>
-<span class="sourceLineNo">516</span>    stm.readFully(1, actual, 0, 4096);<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    stm.readFully(4*blockSize, actual, 0, 4096);<a name="line.517"></a>
-<span class="sourceLineNo">518</span>    stm.readFully(7*blockSize, actual, 0, 4096);<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    actual = new byte[3*4096];<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    stm.readFully(0*blockSize, actual, 0, 3*4096);<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    checkAndEraseData(actual, 0, expected, "Pread Test 7");<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    actual = new byte[8*4096];<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    stm.readFully(3*blockSize, actual, 0, 8*4096);<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    checkAndEraseData(actual, 3*blockSize, expected, "Pread Test 8");<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    // read the tail<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    stm.readFully(11*blockSize+blockSize/2, actual, 0, blockSize/2);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    IOException res = null;<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    try { // read beyond the end of the file<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      stm.readFully(11*blockSize+blockSize/2, actual, 0, blockSize);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    } catch (IOException e) {<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      // should throw an exception<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      res = e;<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    assertTrue("Error reading beyond file boundary.", res != null);<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>    stm.close();<a name="line.536"></a>
-<span class="sourceLineNo">537</span>  }<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>  private void checkAndEraseData(byte[] actual, int from, byte[] expected, String message) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    for (int idx = 0; idx &lt; actual.length; idx++) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      assertEquals(message+" byte "+(from+idx)+" differs. expected "+<a name="line.541"></a>
-<span class="sourceLineNo">542</span>                        expected[from+idx]+" actual "+actual[idx],<a name="line.542"></a>
-<span class="sourceLineNo">543</span>                        actual[idx], expected[from+idx]);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      actual[idx] = 0;<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>  private void doPread(FSDataInputStream stm, long position, byte[] buffer,<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      int offset, int length) throws IOException {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    int nread = 0;<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    // long totalRead = 0;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    // DFSInputStream dfstm = null;<a name="line.552"></a>
-<span class="sourceLineNo">553</span><a name="line.553"></a>
-<span class="sourceLineNo">554</span>    /* Disable. This counts do not add up. Some issue in original hdfs tests?<a name="line.554"></a>
-<span class="sourceLineNo">555</span>    if (stm.getWrappedStream() instanceof DFSInputStream) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>      dfstm = (DFSInputStream) (stm.getWrappedStream());<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      totalRead = dfstm.getReadStatistics().getTotalBytesRead();<a name="line.557"></a>
-<span class="sourceLineNo">558</span>    } */<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span>    while (nread &lt; length) {<a name="line.560"></a>
-<span class="sourceLineNo">561</span>      int nbytes =<a name="line.561"></a>
-<span class="sourceLineNo">562</span>          stm.read(position + nread, buffer, offset + nread, length - nread);<a name="line.562"></a>
-<span class="sourceLineNo">563</span>      assertTrue("Error in pread", nbytes &gt; 0);<a name="line.563"></a>
-<span class="sourceLineNo">564</span>      nread += nbytes;<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    }<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span>    /* Disable. This counts do not add up. Some issue in original hdfs tests?<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    if (dfstm != null) {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      if (isHedgedRead) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>        assertTrue("Expected read statistic to be incremented",<a name="line.570"></a>
-<span class="sourceLineNo">571</span>          length &lt;= dfstm.getReadStatistics().getTotalBytesRead() - totalRead);<a name="line.571"></a>
-<span class="sourceLineNo">572</span>      } else {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>        assertEquals("Expected read statistic to be incremented", length, dfstm<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            .getReadStatistics().getTotalBytesRead() - totalRead);<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      }<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    }*/<a name="line.576"></a>
-<span class="sourceLineNo">577</span>  }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span>  private void cleanupFile(FileSystem fileSys, Path name) throws IOException {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>    assertTrue(fileSys.exists(name));<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    assertTrue(fileSys.delete(name, true));<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    assertTrue(!fileSys.exists(name));<a name="line.582"></a>
-<span class="sourceLineNo">583</span>  }<a name="line.583"></a>
-<span class="sourceLineNo">584</span>}<a name="line.584"></a>
+<span class="sourceLineNo">382</span>  @Test<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public void testSetWALRootDir() throws Exception {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    Path p = new Path("file:

<TRUNCATED>

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

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html
index 43cc877..6408c36 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html
@@ -428,256 +428,259 @@
 <span class="sourceLineNo">420</span>    private int queuedPriority;<a name="line.420"></a>
 <span class="sourceLineNo">421</span>    private ThreadPoolExecutor parent;<a name="line.421"></a>
 <span class="sourceLineNo">422</span>    private User user;<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    public CompactionRunner(Store store, Region region,<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        CompactionContext compaction, ThreadPoolExecutor parent, User user) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      super();<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      this.store = store;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      this.region = (HRegion)region;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      this.compaction = compaction;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      this.queuedPriority = (this.compaction == null)<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          ? store.getCompactPriority() : compaction.getRequest().getPriority();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      this.parent = parent;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      this.user = user;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public String toString() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      return (this.compaction != null) ? ("Request = " + compaction.getRequest())<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          : ("Store = " + store.toString() + ", pri = " + queuedPriority);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>    private void doCompaction(User user) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      // Common case - system compaction without a file selection. Select now.<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      if (this.compaction == null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        int oldPriority = this.queuedPriority;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        this.queuedPriority = this.store.getCompactPriority();<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        if (this.queuedPriority &gt; oldPriority) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>          // Store priority decreased while we were in queue (due to some other compaction?),<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          // requeue with new priority to avoid blocking potential higher priorities.<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          this.parent.execute(this);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          return;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        }<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        try {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          this.compaction = selectCompaction(this.region, this.store, queuedPriority, null, user);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        } catch (IOException ex) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          LOG.error("Compaction selection failed " + this, ex);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          server.checkFileSystem();<a name="line.457"></a>
-<span class="sourceLineNo">458</span>          return;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        if (this.compaction == null) return; // nothing to do<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        // Now see if we are in correct pool for the size; if not, go to the correct one.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        // We might end up waiting for a while, so cancel the selection.<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        assert this.compaction.hasSelection();<a name="line.463"></a>
-<span class="sourceLineNo">464</span>        ThreadPoolExecutor pool = store.throttleCompaction(<a name="line.464"></a>
-<span class="sourceLineNo">465</span>            compaction.getRequest().getSize()) ? longCompactions : shortCompactions;<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>        // Long compaction pool can process small job<a name="line.467"></a>
-<span class="sourceLineNo">468</span>        // Short compaction pool should not process large job<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        if (this.parent == shortCompactions &amp;&amp; pool == longCompactions) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          this.store.cancelRequestedCompaction(this.compaction);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          this.compaction = null;<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          this.parent = pool;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          this.parent.execute(this);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>          return;<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      // Finally we can compact something.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      assert this.compaction != null;<a name="line.478"></a>
-<span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>      this.compaction.getRequest().beforeExecute();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      try {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        // Note: please don't put single-compaction logic here;<a name="line.482"></a>
-<span class="sourceLineNo">483</span>        //       put it into region/store/etc. This is CST logic.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>        long start = EnvironmentEdgeManager.currentTime();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        boolean completed =<a name="line.485"></a>
-<span class="sourceLineNo">486</span>            region.compact(compaction, store, compactionThroughputController, user);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        LOG.info(((completed) ? "Completed" : "Aborted") + " compaction: " +<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              this + "; duration=" + StringUtils.formatTimeDiff(now, start));<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        if (completed) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>          // degenerate case: blocked regions require recursive enqueues<a name="line.491"></a>
-<span class="sourceLineNo">492</span>          if (store.getCompactPriority() &lt;= 0) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            requestSystemCompaction(region, store, "Recursive enqueue");<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          } else {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>            // see if the compaction has caused us to exceed max region size<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            requestSplit(region);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        }<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      } catch (IOException ex) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        IOException remoteEx =<a name="line.500"></a>
-<span class="sourceLineNo">501</span>            ex instanceof RemoteException ? ((RemoteException) ex).unwrapRemoteException() : ex;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>        LOG.error("Compaction failed " + this, remoteEx);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        if (remoteEx != ex) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>          LOG.info("Compaction failed at original callstack: " + formatStackTrace(ex));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        region.reportCompactionRequestFailure();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>        server.checkFileSystem();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      } catch (Exception ex) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        LOG.error("Compaction failed " + this, ex);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        region.reportCompactionRequestFailure();<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        server.checkFileSystem();<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      } finally {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        LOG.debug("CompactSplitThread Status: " + CompactSplitThread.this);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      this.compaction.getRequest().afterExecute();<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>    @Override<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public void run() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      Preconditions.checkNotNull(server);<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      if (server.isStopped()<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          || (region.getTableDesc() != null &amp;&amp; !region.getTableDesc().isCompactionEnabled())) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        return;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      doCompaction(user);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    private String formatStackTrace(Exception ex) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      StringWriter sw = new StringWriter();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      PrintWriter pw = new PrintWriter(sw);<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      ex.printStackTrace(pw);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      pw.flush();<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      return sw.toString();<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>    @Override<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    public int compareTo(CompactionRunner o) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      // Only compare the underlying request (if any), for queue sorting purposes.<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      int compareVal = queuedPriority - o.queuedPriority; // compare priority<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      if (compareVal != 0) return compareVal;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      CompactionContext tc = this.compaction, oc = o.compaction;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>      // Sort pre-selected (user?) compactions before system ones with equal priority.<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      return (tc == null) ? ((oc == null) ? 0 : 1)<a name="line.543"></a>
-<span class="sourceLineNo">544</span>          : ((oc == null) ? -1 : tc.getRequest().compareTo(oc.getRequest()));<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>  /**<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * Cleanup class to use when rejecting a compaction request from the queue.<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   */<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  private static class Rejection implements RejectedExecutionHandler {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    @Override<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    public void rejectedExecution(Runnable runnable, ThreadPoolExecutor pool) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      if (runnable instanceof CompactionRunner) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        CompactionRunner runner = (CompactionRunner)runnable;<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        LOG.debug("Compaction Rejected: " + runner);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>        runner.store.cancelRequestedCompaction(runner.compaction);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>  }<a name="line.560"></a>
-<span class="sourceLineNo">561</span><a name="line.561"></a>
-<span class="sourceLineNo">562</span>  /**<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * {@inheritDoc}<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   */<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    // Check if number of large / small compaction threads has changed, and then<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    // adjust the core pool size of the thread pools, by using the<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    // setCorePoolSize() method. According to the javadocs, it is safe to<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    // change the core pool size on-the-fly. We need to reset the maximum<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    // pool size, as well.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    int largeThreads = Math.max(1, newConf.getInt(<a name="line.572"></a>
-<span class="sourceLineNo">573</span>            LARGE_COMPACTION_THREADS,<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            LARGE_COMPACTION_THREADS_DEFAULT));<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    if (this.longCompactions.getCorePoolSize() != largeThreads) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      LOG.info("Changing the value of " + LARGE_COMPACTION_THREADS +<a name="line.576"></a>
-<span class="sourceLineNo">577</span>              " from " + this.longCompactions.getCorePoolSize() + " to " +<a name="line.577"></a>
-<span class="sourceLineNo">578</span>              largeThreads);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      if(this.longCompactions.getCorePoolSize() &lt; largeThreads) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      } else {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span><a name="line.587"></a>
-<span class="sourceLineNo">588</span>    int smallThreads = newConf.getInt(SMALL_COMPACTION_THREADS,<a name="line.588"></a>
-<span class="sourceLineNo">589</span>            SMALL_COMPACTION_THREADS_DEFAULT);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    if (this.shortCompactions.getCorePoolSize() != smallThreads) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      LOG.info("Changing the value of " + SMALL_COMPACTION_THREADS +<a name="line.591"></a>
-<span class="sourceLineNo">592</span>                " from " + this.shortCompactions.getCorePoolSize() + " to " +<a name="line.592"></a>
-<span class="sourceLineNo">593</span>                smallThreads);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      if(this.shortCompactions.getCorePoolSize() &lt; smallThreads) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      } else {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<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><a name="line.602"></a>
-<span class="sourceLineNo">603</span>    int splitThreads = newConf.getInt(SPLIT_THREADS,<a name="line.603"></a>
-<span class="sourceLineNo">604</span>            SPLIT_THREADS_DEFAULT);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (this.splits.getCorePoolSize() != splitThreads) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      LOG.info("Changing the value of " + SPLIT_THREADS +<a name="line.606"></a>
-<span class="sourceLineNo">607</span>                " from " + this.splits.getCorePoolSize() + " to " +<a name="line.607"></a>
-<span class="sourceLineNo">608</span>                splitThreads);<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      if(this.splits.getCorePoolSize() &lt; splitThreads) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      } else {<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      }<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>    ThroughputController old = this.compactionThroughputController;<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    if (old != null) {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      old.stop("configuration change");<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    this.compactionThroughputController =<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        CompactionThroughputControllerFactory.create(server, newConf);<a name="line.623"></a>
-<span class="sourceLineNo">624</span><a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // We change this atomically here instead of reloading the config in order that upstream<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    // would be the only one with the flexibility to reload the config.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    this.conf.reloadConfiguration();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  }<a name="line.628"></a>
-<span class="sourceLineNo">629</span><a name="line.629"></a>
-<span class="sourceLineNo">630</span>  protected int getSmallCompactionThreadNum() {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    return this.shortCompactions.getCorePoolSize();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>  }<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span>  protected int getLargeCompactionThreadNum() {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    return this.longCompactions.getCorePoolSize();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  }<a name="line.636"></a>
-<span class="sourceLineNo">637</span><a name="line.637"></a>
-<span class="sourceLineNo">638</span>  protected int getSplitThreadNum() {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    return this.splits.getCorePoolSize();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
-<span class="sourceLineNo">641</span><a name="line.641"></a>
-<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * {@inheritDoc}<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   */<a name="line.644"></a>
-<span class="sourceLineNo">645</span>  @Override<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // No children to register.<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>   * {@inheritDoc}<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   */<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    // No children to register<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  @VisibleForTesting<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  public ThroughputController getCompactionThroughputController() {<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    return compactionThroughputController;<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>  @VisibleForTesting<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  /**<a name="line.664"></a>
-<span class="sourceLineNo">665</span>   * Shutdown the long compaction thread pool.<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * Should only be used in unit test to prevent long compaction thread pool from stealing job<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   * from short compaction queue<a name="line.667"></a>
-<span class="sourceLineNo">668</span>   */<a name="line.668"></a>
-<span class="sourceLineNo">669</span>  void shutdownLongCompactions(){<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    this.longCompactions.shutdown();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>  }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>}<a name="line.672"></a>
+<span class="sourceLineNo">423</span>    private long time;<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    public CompactionRunner(Store store, Region region,<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        CompactionContext compaction, ThreadPoolExecutor parent, User user) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      super();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      this.store = store;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      this.region = (HRegion)region;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      this.compaction = compaction;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      this.queuedPriority = (this.compaction == null)<a name="line.431"></a>
+<span class="sourceLineNo">432</span>          ? store.getCompactPriority() : compaction.getRequest().getPriority();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      this.parent = parent;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>      this.user = user;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      this.time =  System.currentTimeMillis();<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>    @Override<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    public String toString() {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      return (this.compaction != null) ? ("Request = " + compaction.getRequest())<a name="line.440"></a>
+<span class="sourceLineNo">441</span>          : ("regionName = " + region.toString() + ", storeName = " + store.toString() +<a name="line.441"></a>
+<span class="sourceLineNo">442</span>             ", priority = " + queuedPriority + ", time = " + time);<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>    private void doCompaction(User user) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      // Common case - system compaction without a file selection. Select now.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>      if (this.compaction == null) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        int oldPriority = this.queuedPriority;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        this.queuedPriority = this.store.getCompactPriority();<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        if (this.queuedPriority &gt; oldPriority) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          // Store priority decreased while we were in queue (due to some other compaction?),<a name="line.451"></a>
+<span class="sourceLineNo">452</span>          // requeue with new priority to avoid blocking potential higher priorities.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>          this.parent.execute(this);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>          return;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        try {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>          this.compaction = selectCompaction(this.region, this.store, queuedPriority, null, user);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        } catch (IOException ex) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          LOG.error("Compaction selection failed " + this, ex);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>          server.checkFileSystem();<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          return;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        }<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        if (this.compaction == null) return; // nothing to do<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        // Now see if we are in correct pool for the size; if not, go to the correct one.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        // We might end up waiting for a while, so cancel the selection.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        assert this.compaction.hasSelection();<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        ThreadPoolExecutor pool = store.throttleCompaction(<a name="line.467"></a>
+<span class="sourceLineNo">468</span>            compaction.getRequest().getSize()) ? longCompactions : shortCompactions;<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>        // Long compaction pool can process small job<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        // Short compaction pool should not process large job<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        if (this.parent == shortCompactions &amp;&amp; pool == longCompactions) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>          this.store.cancelRequestedCompaction(this.compaction);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>          this.compaction = null;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>          this.parent = pool;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>          this.parent.execute(this);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          return;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      // Finally we can compact something.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      assert this.compaction != null;<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span>      this.compaction.getRequest().beforeExecute();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      try {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        // Note: please don't put single-compaction logic here;<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        //       put it into region/store/etc. This is CST logic.<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        long start = EnvironmentEdgeManager.currentTime();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        boolean completed =<a name="line.488"></a>
+<span class="sourceLineNo">489</span>            region.compact(compaction, store, compactionThroughputController, user);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        LOG.info(((completed) ? "Completed" : "Aborted") + " compaction: " +<a name="line.491"></a>
+<span class="sourceLineNo">492</span>              this + "; duration=" + StringUtils.formatTimeDiff(now, start));<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        if (completed) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>          // degenerate case: blocked regions require recursive enqueues<a name="line.494"></a>
+<span class="sourceLineNo">495</span>          if (store.getCompactPriority() &lt;= 0) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>            requestSystemCompaction(region, store, "Recursive enqueue");<a name="line.496"></a>
+<span class="sourceLineNo">497</span>          } else {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>            // see if the compaction has caused us to exceed max region size<a name="line.498"></a>
+<span class="sourceLineNo">499</span>            requestSplit(region);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>          }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        }<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      } catch (IOException ex) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        IOException remoteEx =<a name="line.503"></a>
+<span class="sourceLineNo">504</span>            ex instanceof RemoteException ? ((RemoteException) ex).unwrapRemoteException() : ex;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>        LOG.error("Compaction failed " + this, remoteEx);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        if (remoteEx != ex) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>          LOG.info("Compaction failed at original callstack: " + formatStackTrace(ex));<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        region.reportCompactionRequestFailure();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        server.checkFileSystem();<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      } catch (Exception ex) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        LOG.error("Compaction failed " + this, ex);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        region.reportCompactionRequestFailure();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        server.checkFileSystem();<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      } finally {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        LOG.debug("CompactSplitThread Status: " + CompactSplitThread.this);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      this.compaction.getRequest().afterExecute();<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>    @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    public void run() {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>      Preconditions.checkNotNull(server);<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      if (server.isStopped()<a name="line.524"></a>
+<span class="sourceLineNo">525</span>          || (region.getTableDesc() != null &amp;&amp; !region.getTableDesc().isCompactionEnabled())) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        return;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>      }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>      doCompaction(user);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>    private String formatStackTrace(Exception ex) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      StringWriter sw = new StringWriter();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      PrintWriter pw = new PrintWriter(sw);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      ex.printStackTrace(pw);<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      pw.flush();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      return sw.toString();<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>    @Override<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    public int compareTo(CompactionRunner o) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      // Only compare the underlying request (if any), for queue sorting purposes.<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      int compareVal = queuedPriority - o.queuedPriority; // compare priority<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      if (compareVal != 0) return compareVal;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>      CompactionContext tc = this.compaction, oc = o.compaction;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      // Sort pre-selected (user?) compactions before system ones with equal priority.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      return (tc == null) ? ((oc == null) ? 0 : 1)<a name="line.546"></a>
+<span class="sourceLineNo">547</span>          : ((oc == null) ? -1 : tc.getRequest().compareTo(oc.getRequest()));<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * Cleanup class to use when rejecting a compaction request from the queue.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  private static class Rejection implements RejectedExecutionHandler {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    public void rejectedExecution(Runnable runnable, ThreadPoolExecutor pool) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (runnable instanceof CompactionRunner) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        CompactionRunner runner = (CompactionRunner)runnable;<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        LOG.debug("Compaction Rejected: " + runner);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        runner.store.cancelRequestedCompaction(runner.compaction);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>      }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * {@inheritDoc}<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   */<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>    // Check if number of large / small compaction threads has changed, and then<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    // adjust the core pool size of the thread pools, by using the<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    // setCorePoolSize() method. According to the javadocs, it is safe to<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    // change the core pool size on-the-fly. We need to reset the maximum<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    // pool size, as well.<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    int largeThreads = Math.max(1, newConf.getInt(<a name="line.575"></a>
+<span class="sourceLineNo">576</span>            LARGE_COMPACTION_THREADS,<a name="line.576"></a>
+<span class="sourceLineNo">577</span>            LARGE_COMPACTION_THREADS_DEFAULT));<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    if (this.longCompactions.getCorePoolSize() != largeThreads) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      LOG.info("Changing the value of " + LARGE_COMPACTION_THREADS +<a name="line.579"></a>
+<span class="sourceLineNo">580</span>              " from " + this.longCompactions.getCorePoolSize() + " to " +<a name="line.580"></a>
+<span class="sourceLineNo">581</span>              largeThreads);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      if(this.longCompactions.getCorePoolSize() &lt; largeThreads) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      } else {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.587"></a>
+<span class="sourceLineNo">588</span>      }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>    int smallThreads = newConf.getInt(SMALL_COMPACTION_THREADS,<a name="line.591"></a>
+<span class="sourceLineNo">592</span>            SMALL_COMPACTION_THREADS_DEFAULT);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    if (this.shortCompactions.getCorePoolSize() != smallThreads) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      LOG.info("Changing the value of " + SMALL_COMPACTION_THREADS +<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                " from " + this.shortCompactions.getCorePoolSize() + " to " +<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                smallThreads);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>      if(this.shortCompactions.getCorePoolSize() &lt; smallThreads) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      } else {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<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><a name="line.605"></a>
+<span class="sourceLineNo">606</span>    int splitThreads = newConf.getInt(SPLIT_THREADS,<a name="line.606"></a>
+<span class="sourceLineNo">607</span>            SPLIT_THREADS_DEFAULT);<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    if (this.splits.getCorePoolSize() != splitThreads) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      LOG.info("Changing the value of " + SPLIT_THREADS +<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                " from " + this.splits.getCorePoolSize() + " to " +<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                splitThreads);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      if(this.splits.getCorePoolSize() &lt; splitThreads) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      } else {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>    ThroughputController old = this.compactionThroughputController;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    if (old != null) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      old.stop("configuration change");<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    this.compactionThroughputController =<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        CompactionThroughputControllerFactory.create(server, newConf);<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>    // We change this atomically here instead of reloading the config in order that upstream<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    // would be the only one with the flexibility to reload the config.<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    this.conf.reloadConfiguration();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>  }<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>  protected int getSmallCompactionThreadNum() {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    return this.shortCompactions.getCorePoolSize();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>  }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>  protected int getLargeCompactionThreadNum() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>    return this.longCompactions.getCorePoolSize();<a name="line.638"></a>
+<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>  protected int getSplitThreadNum() {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    return this.splits.getCorePoolSize();<a name="line.642"></a>
+<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>  /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   * {@inheritDoc}<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
+<span class="sourceLineNo">648</span>  @Override<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    // No children to register.<a name="line.650"></a>
+<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>  /**<a name="line.653"></a>
+<span class="sourceLineNo">654</span>   * {@inheritDoc}<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    // No children to register<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
+<span class="sourceLineNo">660</span><a name="line.660"></a>
+<span class="sourceLineNo">661</span>  @VisibleForTesting<a name="line.661"></a>
+<span class="sourceLineNo">662</span>  public ThroughputController getCompactionThroughputController() {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    return compactionThroughputController;<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>  @VisibleForTesting<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  /**<a name="line.667"></a>
+<span class="sourceLineNo">668</span>   * Shutdown the long compaction thread pool.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * Should only be used in unit test to prevent long compaction thread pool from stealing job<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * from short compaction queue<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   */<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  void shutdownLongCompactions(){<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    this.longCompactions.shutdown();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>  }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>}<a name="line.675"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
+<span class="sourceL

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="l

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html
index 43cc877..6408c36 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html
@@ -428,256 +428,259 @@
 <span class="sourceLineNo">420</span>    private int queuedPriority;<a name="line.420"></a>
 <span class="sourceLineNo">421</span>    private ThreadPoolExecutor parent;<a name="line.421"></a>
 <span class="sourceLineNo">422</span>    private User user;<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    public CompactionRunner(Store store, Region region,<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        CompactionContext compaction, ThreadPoolExecutor parent, User user) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      super();<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      this.store = store;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      this.region = (HRegion)region;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      this.compaction = compaction;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      this.queuedPriority = (this.compaction == null)<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          ? store.getCompactPriority() : compaction.getRequest().getPriority();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      this.parent = parent;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      this.user = user;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public String toString() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      return (this.compaction != null) ? ("Request = " + compaction.getRequest())<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          : ("Store = " + store.toString() + ", pri = " + queuedPriority);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>    private void doCompaction(User user) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      // Common case - system compaction without a file selection. Select now.<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      if (this.compaction == null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        int oldPriority = this.queuedPriority;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        this.queuedPriority = this.store.getCompactPriority();<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        if (this.queuedPriority &gt; oldPriority) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>          // Store priority decreased while we were in queue (due to some other compaction?),<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          // requeue with new priority to avoid blocking potential higher priorities.<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          this.parent.execute(this);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          return;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        }<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        try {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          this.compaction = selectCompaction(this.region, this.store, queuedPriority, null, user);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        } catch (IOException ex) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          LOG.error("Compaction selection failed " + this, ex);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          server.checkFileSystem();<a name="line.457"></a>
-<span class="sourceLineNo">458</span>          return;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        if (this.compaction == null) return; // nothing to do<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        // Now see if we are in correct pool for the size; if not, go to the correct one.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        // We might end up waiting for a while, so cancel the selection.<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        assert this.compaction.hasSelection();<a name="line.463"></a>
-<span class="sourceLineNo">464</span>        ThreadPoolExecutor pool = store.throttleCompaction(<a name="line.464"></a>
-<span class="sourceLineNo">465</span>            compaction.getRequest().getSize()) ? longCompactions : shortCompactions;<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>        // Long compaction pool can process small job<a name="line.467"></a>
-<span class="sourceLineNo">468</span>        // Short compaction pool should not process large job<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        if (this.parent == shortCompactions &amp;&amp; pool == longCompactions) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          this.store.cancelRequestedCompaction(this.compaction);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          this.compaction = null;<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          this.parent = pool;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          this.parent.execute(this);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>          return;<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      // Finally we can compact something.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      assert this.compaction != null;<a name="line.478"></a>
-<span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>      this.compaction.getRequest().beforeExecute();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      try {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        // Note: please don't put single-compaction logic here;<a name="line.482"></a>
-<span class="sourceLineNo">483</span>        //       put it into region/store/etc. This is CST logic.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>        long start = EnvironmentEdgeManager.currentTime();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        boolean completed =<a name="line.485"></a>
-<span class="sourceLineNo">486</span>            region.compact(compaction, store, compactionThroughputController, user);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        LOG.info(((completed) ? "Completed" : "Aborted") + " compaction: " +<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              this + "; duration=" + StringUtils.formatTimeDiff(now, start));<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        if (completed) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>          // degenerate case: blocked regions require recursive enqueues<a name="line.491"></a>
-<span class="sourceLineNo">492</span>          if (store.getCompactPriority() &lt;= 0) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            requestSystemCompaction(region, store, "Recursive enqueue");<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          } else {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>            // see if the compaction has caused us to exceed max region size<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            requestSplit(region);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        }<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      } catch (IOException ex) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        IOException remoteEx =<a name="line.500"></a>
-<span class="sourceLineNo">501</span>            ex instanceof RemoteException ? ((RemoteException) ex).unwrapRemoteException() : ex;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>        LOG.error("Compaction failed " + this, remoteEx);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        if (remoteEx != ex) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>          LOG.info("Compaction failed at original callstack: " + formatStackTrace(ex));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        region.reportCompactionRequestFailure();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>        server.checkFileSystem();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      } catch (Exception ex) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        LOG.error("Compaction failed " + this, ex);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        region.reportCompactionRequestFailure();<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        server.checkFileSystem();<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      } finally {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        LOG.debug("CompactSplitThread Status: " + CompactSplitThread.this);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      this.compaction.getRequest().afterExecute();<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>    @Override<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public void run() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      Preconditions.checkNotNull(server);<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      if (server.isStopped()<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          || (region.getTableDesc() != null &amp;&amp; !region.getTableDesc().isCompactionEnabled())) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        return;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      doCompaction(user);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    private String formatStackTrace(Exception ex) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      StringWriter sw = new StringWriter();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      PrintWriter pw = new PrintWriter(sw);<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      ex.printStackTrace(pw);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      pw.flush();<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      return sw.toString();<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>    @Override<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    public int compareTo(CompactionRunner o) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      // Only compare the underlying request (if any), for queue sorting purposes.<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      int compareVal = queuedPriority - o.queuedPriority; // compare priority<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      if (compareVal != 0) return compareVal;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      CompactionContext tc = this.compaction, oc = o.compaction;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>      // Sort pre-selected (user?) compactions before system ones with equal priority.<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      return (tc == null) ? ((oc == null) ? 0 : 1)<a name="line.543"></a>
-<span class="sourceLineNo">544</span>          : ((oc == null) ? -1 : tc.getRequest().compareTo(oc.getRequest()));<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>  /**<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * Cleanup class to use when rejecting a compaction request from the queue.<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   */<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  private static class Rejection implements RejectedExecutionHandler {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    @Override<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    public void rejectedExecution(Runnable runnable, ThreadPoolExecutor pool) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      if (runnable instanceof CompactionRunner) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        CompactionRunner runner = (CompactionRunner)runnable;<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        LOG.debug("Compaction Rejected: " + runner);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>        runner.store.cancelRequestedCompaction(runner.compaction);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>  }<a name="line.560"></a>
-<span class="sourceLineNo">561</span><a name="line.561"></a>
-<span class="sourceLineNo">562</span>  /**<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * {@inheritDoc}<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   */<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    // Check if number of large / small compaction threads has changed, and then<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    // adjust the core pool size of the thread pools, by using the<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    // setCorePoolSize() method. According to the javadocs, it is safe to<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    // change the core pool size on-the-fly. We need to reset the maximum<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    // pool size, as well.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    int largeThreads = Math.max(1, newConf.getInt(<a name="line.572"></a>
-<span class="sourceLineNo">573</span>            LARGE_COMPACTION_THREADS,<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            LARGE_COMPACTION_THREADS_DEFAULT));<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    if (this.longCompactions.getCorePoolSize() != largeThreads) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      LOG.info("Changing the value of " + LARGE_COMPACTION_THREADS +<a name="line.576"></a>
-<span class="sourceLineNo">577</span>              " from " + this.longCompactions.getCorePoolSize() + " to " +<a name="line.577"></a>
-<span class="sourceLineNo">578</span>              largeThreads);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      if(this.longCompactions.getCorePoolSize() &lt; largeThreads) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      } else {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span><a name="line.587"></a>
-<span class="sourceLineNo">588</span>    int smallThreads = newConf.getInt(SMALL_COMPACTION_THREADS,<a name="line.588"></a>
-<span class="sourceLineNo">589</span>            SMALL_COMPACTION_THREADS_DEFAULT);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    if (this.shortCompactions.getCorePoolSize() != smallThreads) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      LOG.info("Changing the value of " + SMALL_COMPACTION_THREADS +<a name="line.591"></a>
-<span class="sourceLineNo">592</span>                " from " + this.shortCompactions.getCorePoolSize() + " to " +<a name="line.592"></a>
-<span class="sourceLineNo">593</span>                smallThreads);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      if(this.shortCompactions.getCorePoolSize() &lt; smallThreads) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      } else {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<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><a name="line.602"></a>
-<span class="sourceLineNo">603</span>    int splitThreads = newConf.getInt(SPLIT_THREADS,<a name="line.603"></a>
-<span class="sourceLineNo">604</span>            SPLIT_THREADS_DEFAULT);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (this.splits.getCorePoolSize() != splitThreads) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      LOG.info("Changing the value of " + SPLIT_THREADS +<a name="line.606"></a>
-<span class="sourceLineNo">607</span>                " from " + this.splits.getCorePoolSize() + " to " +<a name="line.607"></a>
-<span class="sourceLineNo">608</span>                splitThreads);<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      if(this.splits.getCorePoolSize() &lt; splitThreads) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      } else {<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      }<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>    ThroughputController old = this.compactionThroughputController;<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    if (old != null) {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      old.stop("configuration change");<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    this.compactionThroughputController =<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        CompactionThroughputControllerFactory.create(server, newConf);<a name="line.623"></a>
-<span class="sourceLineNo">624</span><a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // We change this atomically here instead of reloading the config in order that upstream<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    // would be the only one with the flexibility to reload the config.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    this.conf.reloadConfiguration();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  }<a name="line.628"></a>
-<span class="sourceLineNo">629</span><a name="line.629"></a>
-<span class="sourceLineNo">630</span>  protected int getSmallCompactionThreadNum() {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    return this.shortCompactions.getCorePoolSize();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>  }<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span>  protected int getLargeCompactionThreadNum() {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    return this.longCompactions.getCorePoolSize();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  }<a name="line.636"></a>
-<span class="sourceLineNo">637</span><a name="line.637"></a>
-<span class="sourceLineNo">638</span>  protected int getSplitThreadNum() {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    return this.splits.getCorePoolSize();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
-<span class="sourceLineNo">641</span><a name="line.641"></a>
-<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * {@inheritDoc}<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   */<a name="line.644"></a>
-<span class="sourceLineNo">645</span>  @Override<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // No children to register.<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>   * {@inheritDoc}<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   */<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    // No children to register<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  @VisibleForTesting<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  public ThroughputController getCompactionThroughputController() {<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    return compactionThroughputController;<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>  @VisibleForTesting<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  /**<a name="line.664"></a>
-<span class="sourceLineNo">665</span>   * Shutdown the long compaction thread pool.<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * Should only be used in unit test to prevent long compaction thread pool from stealing job<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   * from short compaction queue<a name="line.667"></a>
-<span class="sourceLineNo">668</span>   */<a name="line.668"></a>
-<span class="sourceLineNo">669</span>  void shutdownLongCompactions(){<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    this.longCompactions.shutdown();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>  }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>}<a name="line.672"></a>
+<span class="sourceLineNo">423</span>    private long time;<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    public CompactionRunner(Store store, Region region,<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        CompactionContext compaction, ThreadPoolExecutor parent, User user) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      super();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      this.store = store;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      this.region = (HRegion)region;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      this.compaction = compaction;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      this.queuedPriority = (this.compaction == null)<a name="line.431"></a>
+<span class="sourceLineNo">432</span>          ? store.getCompactPriority() : compaction.getRequest().getPriority();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      this.parent = parent;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>      this.user = user;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      this.time =  System.currentTimeMillis();<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>    @Override<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    public String toString() {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      return (this.compaction != null) ? ("Request = " + compaction.getRequest())<a name="line.440"></a>
+<span class="sourceLineNo">441</span>          : ("regionName = " + region.toString() + ", storeName = " + store.toString() +<a name="line.441"></a>
+<span class="sourceLineNo">442</span>             ", priority = " + queuedPriority + ", time = " + time);<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>    private void doCompaction(User user) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      // Common case - system compaction without a file selection. Select now.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>      if (this.compaction == null) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        int oldPriority = this.queuedPriority;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        this.queuedPriority = this.store.getCompactPriority();<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        if (this.queuedPriority &gt; oldPriority) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          // Store priority decreased while we were in queue (due to some other compaction?),<a name="line.451"></a>
+<span class="sourceLineNo">452</span>          // requeue with new priority to avoid blocking potential higher priorities.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>          this.parent.execute(this);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>          return;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        try {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>          this.compaction = selectCompaction(this.region, this.store, queuedPriority, null, user);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        } catch (IOException ex) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          LOG.error("Compaction selection failed " + this, ex);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>          server.checkFileSystem();<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          return;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        }<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        if (this.compaction == null) return; // nothing to do<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        // Now see if we are in correct pool for the size; if not, go to the correct one.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        // We might end up waiting for a while, so cancel the selection.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        assert this.compaction.hasSelection();<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        ThreadPoolExecutor pool = store.throttleCompaction(<a name="line.467"></a>
+<span class="sourceLineNo">468</span>            compaction.getRequest().getSize()) ? longCompactions : shortCompactions;<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>        // Long compaction pool can process small job<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        // Short compaction pool should not process large job<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        if (this.parent == shortCompactions &amp;&amp; pool == longCompactions) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>          this.store.cancelRequestedCompaction(this.compaction);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>          this.compaction = null;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>          this.parent = pool;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>          this.parent.execute(this);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          return;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      // Finally we can compact something.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      assert this.compaction != null;<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span>      this.compaction.getRequest().beforeExecute();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      try {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        // Note: please don't put single-compaction logic here;<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        //       put it into region/store/etc. This is CST logic.<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        long start = EnvironmentEdgeManager.currentTime();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        boolean completed =<a name="line.488"></a>
+<span class="sourceLineNo">489</span>            region.compact(compaction, store, compactionThroughputController, user);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        LOG.info(((completed) ? "Completed" : "Aborted") + " compaction: " +<a name="line.491"></a>
+<span class="sourceLineNo">492</span>              this + "; duration=" + StringUtils.formatTimeDiff(now, start));<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        if (completed) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>          // degenerate case: blocked regions require recursive enqueues<a name="line.494"></a>
+<span class="sourceLineNo">495</span>          if (store.getCompactPriority() &lt;= 0) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>            requestSystemCompaction(region, store, "Recursive enqueue");<a name="line.496"></a>
+<span class="sourceLineNo">497</span>          } else {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>            // see if the compaction has caused us to exceed max region size<a name="line.498"></a>
+<span class="sourceLineNo">499</span>            requestSplit(region);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>          }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        }<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      } catch (IOException ex) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        IOException remoteEx =<a name="line.503"></a>
+<span class="sourceLineNo">504</span>            ex instanceof RemoteException ? ((RemoteException) ex).unwrapRemoteException() : ex;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>        LOG.error("Compaction failed " + this, remoteEx);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        if (remoteEx != ex) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>          LOG.info("Compaction failed at original callstack: " + formatStackTrace(ex));<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        region.reportCompactionRequestFailure();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        server.checkFileSystem();<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      } catch (Exception ex) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        LOG.error("Compaction failed " + this, ex);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        region.reportCompactionRequestFailure();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        server.checkFileSystem();<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      } finally {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        LOG.debug("CompactSplitThread Status: " + CompactSplitThread.this);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      this.compaction.getRequest().afterExecute();<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>    @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    public void run() {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>      Preconditions.checkNotNull(server);<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      if (server.isStopped()<a name="line.524"></a>
+<span class="sourceLineNo">525</span>          || (region.getTableDesc() != null &amp;&amp; !region.getTableDesc().isCompactionEnabled())) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        return;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>      }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>      doCompaction(user);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>    private String formatStackTrace(Exception ex) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      StringWriter sw = new StringWriter();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      PrintWriter pw = new PrintWriter(sw);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      ex.printStackTrace(pw);<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      pw.flush();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      return sw.toString();<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>    @Override<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    public int compareTo(CompactionRunner o) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      // Only compare the underlying request (if any), for queue sorting purposes.<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      int compareVal = queuedPriority - o.queuedPriority; // compare priority<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      if (compareVal != 0) return compareVal;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>      CompactionContext tc = this.compaction, oc = o.compaction;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      // Sort pre-selected (user?) compactions before system ones with equal priority.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      return (tc == null) ? ((oc == null) ? 0 : 1)<a name="line.546"></a>
+<span class="sourceLineNo">547</span>          : ((oc == null) ? -1 : tc.getRequest().compareTo(oc.getRequest()));<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * Cleanup class to use when rejecting a compaction request from the queue.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  private static class Rejection implements RejectedExecutionHandler {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    public void rejectedExecution(Runnable runnable, ThreadPoolExecutor pool) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (runnable instanceof CompactionRunner) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        CompactionRunner runner = (CompactionRunner)runnable;<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        LOG.debug("Compaction Rejected: " + runner);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        runner.store.cancelRequestedCompaction(runner.compaction);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>      }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * {@inheritDoc}<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   */<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>    // Check if number of large / small compaction threads has changed, and then<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    // adjust the core pool size of the thread pools, by using the<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    // setCorePoolSize() method. According to the javadocs, it is safe to<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    // change the core pool size on-the-fly. We need to reset the maximum<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    // pool size, as well.<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    int largeThreads = Math.max(1, newConf.getInt(<a name="line.575"></a>
+<span class="sourceLineNo">576</span>            LARGE_COMPACTION_THREADS,<a name="line.576"></a>
+<span class="sourceLineNo">577</span>            LARGE_COMPACTION_THREADS_DEFAULT));<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    if (this.longCompactions.getCorePoolSize() != largeThreads) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      LOG.info("Changing the value of " + LARGE_COMPACTION_THREADS +<a name="line.579"></a>
+<span class="sourceLineNo">580</span>              " from " + this.longCompactions.getCorePoolSize() + " to " +<a name="line.580"></a>
+<span class="sourceLineNo">581</span>              largeThreads);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      if(this.longCompactions.getCorePoolSize() &lt; largeThreads) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      } else {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.587"></a>
+<span class="sourceLineNo">588</span>      }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>    int smallThreads = newConf.getInt(SMALL_COMPACTION_THREADS,<a name="line.591"></a>
+<span class="sourceLineNo">592</span>            SMALL_COMPACTION_THREADS_DEFAULT);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    if (this.shortCompactions.getCorePoolSize() != smallThreads) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      LOG.info("Changing the value of " + SMALL_COMPACTION_THREADS +<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                " from " + this.shortCompactions.getCorePoolSize() + " to " +<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                smallThreads);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>      if(this.shortCompactions.getCorePoolSize() &lt; smallThreads) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      } else {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<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><a name="line.605"></a>
+<span class="sourceLineNo">606</span>    int splitThreads = newConf.getInt(SPLIT_THREADS,<a name="line.606"></a>
+<span class="sourceLineNo">607</span>            SPLIT_THREADS_DEFAULT);<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    if (this.splits.getCorePoolSize() != splitThreads) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      LOG.info("Changing the value of " + SPLIT_THREADS +<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                " from " + this.splits.getCorePoolSize() + " to " +<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                splitThreads);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      if(this.splits.getCorePoolSize() &lt; splitThreads) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      } else {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>    ThroughputController old = this.compactionThroughputController;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    if (old != null) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      old.stop("configuration change");<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    this.compactionThroughputController =<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        CompactionThroughputControllerFactory.create(server, newConf);<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>    // We change this atomically here instead of reloading the config in order that upstream<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    // would be the only one with the flexibility to reload the config.<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    this.conf.reloadConfiguration();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>  }<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>  protected int getSmallCompactionThreadNum() {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    return this.shortCompactions.getCorePoolSize();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>  }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>  protected int getLargeCompactionThreadNum() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>    return this.longCompactions.getCorePoolSize();<a name="line.638"></a>
+<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>  protected int getSplitThreadNum() {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    return this.splits.getCorePoolSize();<a name="line.642"></a>
+<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>  /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   * {@inheritDoc}<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
+<span class="sourceLineNo">648</span>  @Override<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    // No children to register.<a name="line.650"></a>
+<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>  /**<a name="line.653"></a>
+<span class="sourceLineNo">654</span>   * {@inheritDoc}<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    // No children to register<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
+<span class="sourceLineNo">660</span><a name="line.660"></a>
+<span class="sourceLineNo">661</span>  @VisibleForTesting<a name="line.661"></a>
+<span class="sourceLineNo">662</span>  public ThroughputController getCompactionThroughputController() {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    return compactionThroughputController;<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>  @VisibleForTesting<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  /**<a name="line.667"></a>
+<span class="sourceLineNo">668</span>   * Shutdown the long compaction thread pool.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * Should only be used in unit test to prevent long compaction thread pool from stealing job<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * from short compaction queue<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   */<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  void shutdownLongCompactions(){<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    this.longCompactions.shutdown();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>  }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>}<a name="line.675"></a>
 
 
 

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
index bf0bc21..bd316ac 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
@@ -795,242 +795,243 @@
 <span class="sourceLineNo">787</span>      org.apache.hadoop.hbase.CompatibilityFactory.class,            // hbase-hadoop-compat<a name="line.787"></a>
 <span class="sourceLineNo">788</span>      org.apache.hadoop.hbase.mapreduce.TableMapper.class,           // hbase-server<a name="line.788"></a>
 <span class="sourceLineNo">789</span>      org.apache.hadoop.hbase.metrics.impl.FastLongHistogram.class,  // hbase-metrics<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      prefixTreeCodecClass, //  hbase-prefix-tree (if null will be skipped)<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      // pull necessary dependencies<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      org.apache.zookeeper.ZooKeeper.class,<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      io.netty.channel.Channel.class,<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      com.google.protobuf.Message.class,<a name="line.794"></a>
-<span class="sourceLineNo">795</span>      com.google.common.collect.Lists.class,<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      org.apache.htrace.Trace.class,<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      com.codahale.metrics.MetricRegistry.class);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>  }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>  /**<a name="line.800"></a>
-<span class="sourceLineNo">801</span>   * Returns a classpath string built from the content of the "tmpjars" value in {@code conf}.<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * Also exposed to shell scripts via `bin/hbase mapredcp`.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public static String buildDependencyClasspath(Configuration conf) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    if (conf == null) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      throw new IllegalArgumentException("Must provide a configuration object.");<a name="line.806"></a>
-<span class="sourceLineNo">807</span>    }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    Set&lt;String&gt; paths = new HashSet&lt;&gt;(conf.getStringCollection("tmpjars"));<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    if (paths.isEmpty()) {<a name="line.809"></a>
-<span class="sourceLineNo">810</span>      throw new IllegalArgumentException("Configuration contains no tmpjars.");<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    }<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    StringBuilder sb = new StringBuilder();<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    for (String s : paths) {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>      // entries can take the form 'file:/path/to/file.jar'.<a name="line.814"></a>
-<span class="sourceLineNo">815</span>      int idx = s.indexOf(":");<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      if (idx != -1) s = s.substring(idx + 1);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      if (sb.length() &gt; 0) sb.append(File.pathSeparator);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      sb.append(s);<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    return sb.toString();<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  }<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>  /**<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * Add the HBase dependency jars as well as jars for any of the configured<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * job classes to the job configuration, so that JobClient will ship them<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * to the cluster and add them to the DistributedCache.<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   */<a name="line.827"></a>
-<span class="sourceLineNo">828</span>  public static void addDependencyJars(Job job) throws IOException {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>    addHBaseDependencyJars(job.getConfiguration());<a name="line.829"></a>
-<span class="sourceLineNo">830</span>    try {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      addDependencyJarsForClasses(job.getConfiguration(),<a name="line.831"></a>
-<span class="sourceLineNo">832</span>          // when making changes here, consider also mapred.TableMapReduceUtil<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          // pull job classes<a name="line.833"></a>
-<span class="sourceLineNo">834</span>          job.getMapOutputKeyClass(),<a name="line.834"></a>
-<span class="sourceLineNo">835</span>          job.getMapOutputValueClass(),<a name="line.835"></a>
-<span class="sourceLineNo">836</span>          job.getInputFormatClass(),<a name="line.836"></a>
-<span class="sourceLineNo">837</span>          job.getOutputKeyClass(),<a name="line.837"></a>
-<span class="sourceLineNo">838</span>          job.getOutputValueClass(),<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          job.getOutputFormatClass(),<a name="line.839"></a>
-<span class="sourceLineNo">840</span>          job.getPartitionerClass(),<a name="line.840"></a>
-<span class="sourceLineNo">841</span>          job.getCombinerClass());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    } catch (ClassNotFoundException e) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      throw new IOException(e);<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>  /**<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Add the jars containing the given classes to the job's configuration<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * such that JobClient will ship them to the cluster and add them to<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * the DistributedCache.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   * @deprecated rely on {@link #addDependencyJars(Job)} instead.<a name="line.851"></a>
-<span class="sourceLineNo">852</span>   */<a name="line.852"></a>
-<span class="sourceLineNo">853</span>  @Deprecated<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  public static void addDependencyJars(Configuration conf,<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      Class&lt;?&gt;... classes) throws IOException {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    LOG.warn("The addDependencyJars(Configuration, Class&lt;?&gt;...) method has been deprecated since it"<a name="line.856"></a>
-<span class="sourceLineNo">857</span>             + " is easy to use incorrectly. Most users should rely on addDependencyJars(Job) " +<a name="line.857"></a>
-<span class="sourceLineNo">858</span>             "instead. See HBASE-8386 for more details.");<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    addDependencyJarsForClasses(conf, classes);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  }<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>   * Add the jars containing the given classes to the job's configuration<a name="line.863"></a>
-<span class="sourceLineNo">864</span>   * such that JobClient will ship them to the cluster and add them to<a name="line.864"></a>
-<span class="sourceLineNo">865</span>   * the DistributedCache.<a name="line.865"></a>
-<span class="sourceLineNo">866</span>   *<a name="line.866"></a>
-<span class="sourceLineNo">867</span>   * N.B. that this method at most adds one jar per class given. If there is more than one<a name="line.867"></a>
-<span class="sourceLineNo">868</span>   * jar available containing a class with the same name as a given class, we don't define<a name="line.868"></a>
-<span class="sourceLineNo">869</span>   * which of those jars might be chosen.<a name="line.869"></a>
-<span class="sourceLineNo">870</span>   *<a name="line.870"></a>
-<span class="sourceLineNo">871</span>   * @param conf The Hadoop Configuration to modify<a name="line.871"></a>
-<span class="sourceLineNo">872</span>   * @param classes will add just those dependencies needed to find the given classes<a name="line.872"></a>
-<span class="sourceLineNo">873</span>   * @throws IOException if an underlying library call fails.<a name="line.873"></a>
-<span class="sourceLineNo">874</span>   */<a name="line.874"></a>
-<span class="sourceLineNo">875</span>  @InterfaceAudience.Private<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  public static void addDependencyJarsForClasses(Configuration conf,<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      Class&lt;?&gt;... classes) throws IOException {<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>    FileSystem localFs = FileSystem.getLocal(conf);<a name="line.879"></a>
-<span class="sourceLineNo">880</span>    Set&lt;String&gt; jars = new HashSet&lt;&gt;();<a name="line.880"></a>
-<span class="sourceLineNo">881</span>    // Add jars that are already in the tmpjars variable<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    jars.addAll(conf.getStringCollection("tmpjars"));<a name="line.882"></a>
-<span class="sourceLineNo">883</span><a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // add jars as we find them to a map of contents jar name so that we can avoid<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    // creating new jars for classes that have already been packaged.<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    Map&lt;String, String&gt; packagedClasses = new HashMap&lt;&gt;();<a name="line.886"></a>
-<span class="sourceLineNo">887</span><a name="line.887"></a>
-<span class="sourceLineNo">888</span>    // Add jars containing the specified classes<a name="line.888"></a>
-<span class="sourceLineNo">889</span>    for (Class&lt;?&gt; clazz : classes) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>      if (clazz == null) continue;<a name="line.890"></a>
-<span class="sourceLineNo">891</span><a name="line.891"></a>
-<span class="sourceLineNo">892</span>      Path path = findOrCreateJar(clazz, localFs, packagedClasses);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      if (path == null) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>        LOG.warn("Could not find jar for class " + clazz +<a name="line.894"></a>
-<span class="sourceLineNo">895</span>                 " in order to ship it to the cluster.");<a name="line.895"></a>
-<span class="sourceLineNo">896</span>        continue;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>      if (!localFs.exists(path)) {<a name="line.898"></a>
-<span class="sourceLineNo">899</span>        LOG.warn("Could not validate jar file " + path + " for class "<a name="line.899"></a>
-<span class="sourceLineNo">900</span>                 + clazz);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>        continue;<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      }<a name="line.902"></a>
-<span class="sourceLineNo">903</span>      jars.add(path.toString());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    }<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    if (jars.isEmpty()) return;<a name="line.905"></a>
-<span class="sourceLineNo">906</span><a name="line.906"></a>
-<span class="sourceLineNo">907</span>    conf.set("tmpjars", StringUtils.arrayToString(jars.toArray(new String[jars.size()])));<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Finds the Jar for a class or creates it if it doesn't exist. If the class is in<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * a directory in the classpath, it creates a Jar on the fly with the<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   * contents of the directory and returns the path to that Jar. If a Jar is<a name="line.913"></a>
-<span class="sourceLineNo">914</span>   * created, it is created in the system temporary directory. Otherwise,<a name="line.914"></a>
-<span class="sourceLineNo">915</span>   * returns an existing jar that contains a class of the same name. Maintains<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * a mapping from jar contents to the tmp jar created.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @param my_class the class to find.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param fs the FileSystem with which to qualify the returned path.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param packagedClasses a map of class name to path.<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @return a jar file that contains the class.<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   * @throws IOException<a name="line.921"></a>
-<span class="sourceLineNo">922</span>   */<a name="line.922"></a>
-<span class="sourceLineNo">923</span>  private static Path findOrCreateJar(Class&lt;?&gt; my_class, FileSystem fs,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      Map&lt;String, String&gt; packagedClasses)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>  throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    // attempt to locate an existing jar for the class.<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    String jar = findContainingJar(my_class, packagedClasses);<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    if (null == jar || jar.isEmpty()) {<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      jar = getJar(my_class);<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      updateMap(jar, packagedClasses);<a name="line.930"></a>
-<span class="sourceLineNo">931</span>    }<a name="line.931"></a>
-<span class="sourceLineNo">932</span><a name="line.932"></a>
-<span class="sourceLineNo">933</span>    if (null == jar || jar.isEmpty()) {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      return null;<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>    LOG.debug(String.format("For class %s, using jar %s", my_class.getName(), jar));<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    return new Path(jar).makeQualified(fs);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>  }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>  /**<a name="line.941"></a>
-<span class="sourceLineNo">942</span>   * Add entries to &lt;code&gt;packagedClasses&lt;/code&gt; corresponding to class files<a name="line.942"></a>
-<span class="sourceLineNo">943</span>   * contained in &lt;code&gt;jar&lt;/code&gt;.<a name="line.943"></a>
-<span class="sourceLineNo">944</span>   * @param jar The jar who's content to list.<a name="line.944"></a>
-<span class="sourceLineNo">945</span>   * @param packagedClasses map[class -&gt; jar]<a name="line.945"></a>
-<span class="sourceLineNo">946</span>   */<a name="line.946"></a>
-<span class="sourceLineNo">947</span>  private static void updateMap(String jar, Map&lt;String, String&gt; packagedClasses) throws IOException {<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    if (null == jar || jar.isEmpty()) {<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      return;<a name="line.949"></a>
-<span class="sourceLineNo">950</span>    }<a name="line.950"></a>
-<span class="sourceLineNo">951</span>    ZipFile zip = null;<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    try {<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      zip = new ZipFile(jar);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>      for (Enumeration&lt;? extends ZipEntry&gt; iter = zip.entries(); iter.hasMoreElements();) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>        ZipEntry entry = iter.nextElement();<a name="line.955"></a>
-<span class="sourceLineNo">956</span>        if (entry.getName().endsWith("class")) {<a name="line.956"></a>
-<span class="sourceLineNo">957</span>          packagedClasses.put(entry.getName(), jar);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        }<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    } finally {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>      if (null != zip) zip.close();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    }<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>   * Find a jar that contains a class of the same name, if any. It will return<a name="line.966"></a>
-<span class="sourceLineNo">967</span>   * a jar file, even if that is not the first thing on the class path that<a name="line.967"></a>
-<span class="sourceLineNo">968</span>   * has a class with the same name. Looks first on the classpath and then in<a name="line.968"></a>
-<span class="sourceLineNo">969</span>   * the &lt;code&gt;packagedClasses&lt;/code&gt; map.<a name="line.969"></a>
-<span class="sourceLineNo">970</span>   * @param my_class the class to find.<a name="line.970"></a>
-<span class="sourceLineNo">971</span>   * @return a jar file that contains the class, or null.<a name="line.971"></a>
-<span class="sourceLineNo">972</span>   * @throws IOException<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   */<a name="line.973"></a>
-<span class="sourceLineNo">974</span>  private static String findContainingJar(Class&lt;?&gt; my_class, Map&lt;String, String&gt; packagedClasses)<a name="line.974"></a>
-<span class="sourceLineNo">975</span>      throws IOException {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    ClassLoader loader = my_class.getClassLoader();<a name="line.976"></a>
-<span class="sourceLineNo">977</span><a name="line.977"></a>
-<span class="sourceLineNo">978</span>    String class_file = my_class.getName().replaceAll("\\.", "/") + ".class";<a name="line.978"></a>
-<span class="sourceLineNo">979</span><a name="line.979"></a>
-<span class="sourceLineNo">980</span>    if (loader != null) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // first search the classpath<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      for (Enumeration&lt;URL&gt; itr = loader.getResources(class_file); itr.hasMoreElements();) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        URL url = itr.nextElement();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        if ("jar".equals(url.getProtocol())) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>          String toReturn = url.getPath();<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          if (toReturn.startsWith("file:")) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            toReturn = toReturn.substring("file:".length());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          }<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          // URLDecoder is a misnamed class, since it actually decodes<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          // x-www-form-urlencoded MIME type rather than actual<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          // URL encoding (which the file path has). Therefore it would<a name="line.991"></a>
-<span class="sourceLineNo">992</span>          // decode +s to ' 's which is incorrect (spaces are actually<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          // either unencoded or encoded as "%20"). Replace +s first, so<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          // that they are kept sacred during the decoding process.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          toReturn = toReturn.replaceAll("\\+", "%2B");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          toReturn = URLDecoder.decode(toReturn, "UTF-8");<a name="line.996"></a>
-<span class="sourceLineNo">997</span>          return toReturn.replaceAll("!.*$", "");<a name="line.997"></a>
-<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // now look in any jars we've packaged using JarFinder. Returns null when<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // no jar is found.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    return packagedClasses.get(class_file);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>  }<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span><a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>  /**<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>   * Invoke 'getJar' on a custom JarFinder implementation. Useful for some job<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>   * configuration contexts (HBASE-8140) and also for testing on MRv2.<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>   * check if we have HADOOP-9426.<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * @param my_class the class to find.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @return a jar file that contains the class, or null.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  private static String getJar(Class&lt;?&gt; my_class) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    String ret = null;<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      ret = JarFinder.getJar(my_class);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    } catch (Exception e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>      // toss all other exceptions, related to reflection failure<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      throw new RuntimeException("getJar invocation failed.", e);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span><a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    return ret;<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>}<a name="line.1025"></a>
+<span class="sourceLineNo">790</span>      org.apache.hadoop.hbase.metrics.Snapshot.class,                // hbase-metrics-api<a name="line.790"></a>
+<span class="sourceLineNo">791</span>      prefixTreeCodecClass, //  hbase-prefix-tree (if null will be skipped)<a name="line.791"></a>
+<span class="sourceLineNo">792</span>      // pull necessary dependencies<a name="line.792"></a>
+<span class="sourceLineNo">793</span>      org.apache.zookeeper.ZooKeeper.class,<a name="line.793"></a>
+<span class="sourceLineNo">794</span>      io.netty.channel.Channel.class,<a name="line.794"></a>
+<span class="sourceLineNo">795</span>      com.google.protobuf.Message.class,<a name="line.795"></a>
+<span class="sourceLineNo">796</span>      com.google.common.collect.Lists.class,<a name="line.796"></a>
+<span class="sourceLineNo">797</span>      org.apache.htrace.Trace.class,<a name="line.797"></a>
+<span class="sourceLineNo">798</span>      com.codahale.metrics.MetricRegistry.class);<a name="line.798"></a>
+<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
+<span class="sourceLineNo">800</span><a name="line.800"></a>
+<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
+<span class="sourceLineNo">802</span>   * Returns a classpath string built from the content of the "tmpjars" value in {@code conf}.<a name="line.802"></a>
+<span class="sourceLineNo">803</span>   * Also exposed to shell scripts via `bin/hbase mapredcp`.<a name="line.803"></a>
+<span class="sourceLineNo">804</span>   */<a name="line.804"></a>
+<span class="sourceLineNo">805</span>  public static String buildDependencyClasspath(Configuration conf) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    if (conf == null) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      throw new IllegalArgumentException("Must provide a configuration object.");<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    }<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    Set&lt;String&gt; paths = new HashSet&lt;&gt;(conf.getStringCollection("tmpjars"));<a name="line.809"></a>
+<span class="sourceLineNo">810</span>    if (paths.isEmpty()) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>      throw new IllegalArgumentException("Configuration contains no tmpjars.");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>    StringBuilder sb = new StringBuilder();<a name="line.813"></a>
+<span class="sourceLineNo">814</span>    for (String s : paths) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>      // entries can take the form 'file:/path/to/file.jar'.<a name="line.815"></a>
+<span class="sourceLineNo">816</span>      int idx = s.indexOf(":");<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      if (idx != -1) s = s.substring(idx + 1);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      if (sb.length() &gt; 0) sb.append(File.pathSeparator);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>      sb.append(s);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    }<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    return sb.toString();<a name="line.821"></a>
+<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>  /**<a name="line.824"></a>
+<span class="sourceLineNo">825</span>   * Add the HBase dependency jars as well as jars for any of the configured<a name="line.825"></a>
+<span class="sourceLineNo">826</span>   * job classes to the job configuration, so that JobClient will ship them<a name="line.826"></a>
+<span class="sourceLineNo">827</span>   * to the cluster and add them to the DistributedCache.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>   */<a name="line.828"></a>
+<span class="sourceLineNo">829</span>  public static void addDependencyJars(Job job) throws IOException {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    addHBaseDependencyJars(job.getConfiguration());<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    try {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      addDependencyJarsForClasses(job.getConfiguration(),<a name="line.832"></a>
+<span class="sourceLineNo">833</span>          // when making changes here, consider also mapred.TableMapReduceUtil<a name="line.833"></a>
+<span class="sourceLineNo">834</span>          // pull job classes<a name="line.834"></a>
+<span class="sourceLineNo">835</span>          job.getMapOutputKeyClass(),<a name="line.835"></a>
+<span class="sourceLineNo">836</span>          job.getMapOutputValueClass(),<a name="line.836"></a>
+<span class="sourceLineNo">837</span>          job.getInputFormatClass(),<a name="line.837"></a>
+<span class="sourceLineNo">838</span>          job.getOutputKeyClass(),<a name="line.838"></a>
+<span class="sourceLineNo">839</span>          job.getOutputValueClass(),<a name="line.839"></a>
+<span class="sourceLineNo">840</span>          job.getOutputFormatClass(),<a name="line.840"></a>
+<span class="sourceLineNo">841</span>          job.getPartitionerClass(),<a name="line.841"></a>
+<span class="sourceLineNo">842</span>          job.getCombinerClass());<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    } catch (ClassNotFoundException e) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>      throw new IOException(e);<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><a name="line.847"></a>
+<span class="sourceLineNo">848</span>  /**<a name="line.848"></a>
+<span class="sourceLineNo">849</span>   * Add the jars containing the given classes to the job's configuration<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * such that JobClient will ship them to the cluster and add them to<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * the DistributedCache.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @deprecated rely on {@link #addDependencyJars(Job)} instead.<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   */<a name="line.853"></a>
+<span class="sourceLineNo">854</span>  @Deprecated<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public static void addDependencyJars(Configuration conf,<a name="line.855"></a>
+<span class="sourceLineNo">856</span>      Class&lt;?&gt;... classes) throws IOException {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    LOG.warn("The addDependencyJars(Configuration, Class&lt;?&gt;...) method has been deprecated since it"<a name="line.857"></a>
+<span class="sourceLineNo">858</span>             + " is easy to use incorrectly. Most users should rely on addDependencyJars(Job) " +<a name="line.858"></a>
+<span class="sourceLineNo">859</span>             "instead. See HBASE-8386 for more details.");<a name="line.859"></a>
+<span class="sourceLineNo">860</span>    addDependencyJarsForClasses(conf, classes);<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>  /**<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * Add the jars containing the given classes to the job's configuration<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   * such that JobClient will ship them to the cluster and add them to<a name="line.865"></a>
+<span class="sourceLineNo">866</span>   * the DistributedCache.<a name="line.866"></a>
+<span class="sourceLineNo">867</span>   *<a name="line.867"></a>
+<span class="sourceLineNo">868</span>   * N.B. that this method at most adds one jar per class given. If there is more than one<a name="line.868"></a>
+<span class="sourceLineNo">869</span>   * jar available containing a class with the same name as a given class, we don't define<a name="line.869"></a>
+<span class="sourceLineNo">870</span>   * which of those jars might be chosen.<a name="line.870"></a>
+<span class="sourceLineNo">871</span>   *<a name="line.871"></a>
+<span class="sourceLineNo">872</span>   * @param conf The Hadoop Configuration to modify<a name="line.872"></a>
+<span class="sourceLineNo">873</span>   * @param classes will add just those dependencies needed to find the given classes<a name="line.873"></a>
+<span class="sourceLineNo">874</span>   * @throws IOException if an underlying library call fails.<a name="line.874"></a>
+<span class="sourceLineNo">875</span>   */<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  @InterfaceAudience.Private<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  public static void addDependencyJarsForClasses(Configuration conf,<a name="line.877"></a>
+<span class="sourceLineNo">878</span>      Class&lt;?&gt;... classes) throws IOException {<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>    FileSystem localFs = FileSystem.getLocal(conf);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    Set&lt;String&gt; jars = new HashSet&lt;&gt;();<a name="line.881"></a>
+<span class="sourceLineNo">882</span>    // Add jars that are already in the tmpjars variable<a name="line.882"></a>
+<span class="sourceLineNo">883</span>    jars.addAll(conf.getStringCollection("tmpjars"));<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>    // add jars as we find them to a map of contents jar name so that we can avoid<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    // creating new jars for classes that have already been packaged.<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    Map&lt;String, String&gt; packagedClasses = new HashMap&lt;&gt;();<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>    // Add jars containing the specified classes<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    for (Class&lt;?&gt; clazz : classes) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      if (clazz == null) continue;<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>      Path path = findOrCreateJar(clazz, localFs, packagedClasses);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>      if (path == null) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        LOG.warn("Could not find jar for class " + clazz +<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                 " in order to ship it to the cluster.");<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        continue;<a name="line.897"></a>
+<span class="sourceLineNo">898</span>      }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>      if (!localFs.exists(path)) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>        LOG.warn("Could not validate jar file " + path + " for class "<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                 + clazz);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        continue;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>      }<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      jars.add(path.toString());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>    if (jars.isEmpty()) return;<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>    conf.set("tmpjars", StringUtils.arrayToString(jars.toArray(new String[jars.size()])));<a name="line.908"></a>
+<span class="sourceLineNo">909</span>  }<a name="line.909"></a>
+<span class="sourceLineNo">910</span><a name="line.910"></a>
+<span class="sourceLineNo">911</span>  /**<a name="line.911"></a>
+<span class="sourceLineNo">912</span>   * Finds the Jar for a class or creates it if it doesn't exist. If the class is in<a name="line.912"></a>
+<span class="sourceLineNo">913</span>   * a directory in the classpath, it creates a Jar on the fly with the<a name="line.913"></a>
+<span class="sourceLineNo">914</span>   * contents of the directory and returns the path to that Jar. If a Jar is<a name="line.914"></a>
+<span class="sourceLineNo">915</span>   * created, it is created in the system temporary directory. Otherwise,<a name="line.915"></a>
+<span class="sourceLineNo">916</span>   * returns an existing jar that contains a class of the same name. Maintains<a name="line.916"></a>
+<span class="sourceLineNo">917</span>   * a mapping from jar contents to the tmp jar created.<a name="line.917"></a>
+<span class="sourceLineNo">918</span>   * @param my_class the class to find.<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * @param fs the FileSystem with which to qualify the returned path.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   * @param packagedClasses a map of class name to path.<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @return a jar file that contains the class.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @throws IOException<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  private static Path findOrCreateJar(Class&lt;?&gt; my_class, FileSystem fs,<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      Map&lt;String, String&gt; packagedClasses)<a name="line.925"></a>
+<span class="sourceLineNo">926</span>  throws IOException {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>    // attempt to locate an existing jar for the class.<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    String jar = findContainingJar(my_class, packagedClasses);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    if (null == jar || jar.isEmpty()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      jar = getJar(my_class);<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      updateMap(jar, packagedClasses);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    if (null == jar || jar.isEmpty()) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      return null;<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    }<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    LOG.debug(String.format("For class %s, using jar %s", my_class.getName(), jar));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    return new Path(jar).makeQualified(fs);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>  }<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>  /**<a name="line.942"></a>
+<span class="sourceLineNo">943</span>   * Add entries to &lt;code&gt;packagedClasses&lt;/code&gt; corresponding to class files<a name="line.943"></a>
+<span class="sourceLineNo">944</span>   * contained in &lt;code&gt;jar&lt;/code&gt;.<a name="line.944"></a>
+<span class="sourceLineNo">945</span>   * @param jar The jar who's content to list.<a name="line.945"></a>
+<span class="sourceLineNo">946</span>   * @param packagedClasses map[class -&gt; jar]<a name="line.946"></a>
+<span class="sourceLineNo">947</span>   */<a name="line.947"></a>
+<span class="sourceLineNo">948</span>  private static void updateMap(String jar, Map&lt;String, String&gt; packagedClasses) throws IOException {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (null == jar || jar.isEmpty()) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      return;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    ZipFile zip = null;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    try {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      zip = new ZipFile(jar);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      for (Enumeration&lt;? extends ZipEntry&gt; iter = zip.entries(); iter.hasMoreElements();) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        ZipEntry entry = iter.nextElement();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        if (entry.getName().endsWith("class")) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>          packagedClasses.put(entry.getName(), jar);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    } finally {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      if (null != zip) zip.close();<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>  /**<a name="line.966"></a>
+<span class="sourceLineNo">967</span>   * Find a jar that contains a class of the same name, if any. It will return<a name="line.967"></a>
+<span class="sourceLineNo">968</span>   * a jar file, even if that is not the first thing on the class path that<a name="line.968"></a>
+<span class="sourceLineNo">969</span>   * has a class with the same name. Looks first on the classpath and then in<a name="line.969"></a>
+<span class="sourceLineNo">970</span>   * the &lt;code&gt;packagedClasses&lt;/code&gt; map.<a name="line.970"></a>
+<span class="sourceLineNo">971</span>   * @param my_class the class to find.<a name="line.971"></a>
+<span class="sourceLineNo">972</span>   * @return a jar file that contains the class, or null.<a name="line.972"></a>
+<span class="sourceLineNo">973</span>   * @throws IOException<a name="line.973"></a>
+<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
+<span class="sourceLineNo">975</span>  private static String findContainingJar(Class&lt;?&gt; my_class, Map&lt;String, String&gt; packagedClasses)<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      throws IOException {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>    ClassLoader loader = my_class.getClassLoader();<a name="line.977"></a>
+<span class="sourceLineNo">978</span><a name="line.978"></a>
+<span class="sourceLineNo">979</span>    String class_file = my_class.getName().replaceAll("\\.", "/") + ".class";<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>    if (loader != null) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>      // first search the classpath<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      for (Enumeration&lt;URL&gt; itr = loader.getResources(class_file); itr.hasMoreElements();) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>        URL url = itr.nextElement();<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if ("jar".equals(url.getProtocol())) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          String toReturn = url.getPath();<a name="line.986"></a>
+<span class="sourceLineNo">987</span>          if (toReturn.startsWith("file:")) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            toReturn = toReturn.substring("file:".length());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>          // URLDecoder is a misnamed class, since it actually decodes<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          // x-www-form-urlencoded MIME type rather than actual<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          // URL encoding (which the file path has). Therefore it would<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          // decode +s to ' 's which is incorrect (spaces are actually<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          // either unencoded or encoded as "%20"). Replace +s first, so<a name="line.994"></a>
+<span class="sourceLineNo">995</span>          // that they are kept sacred during the decoding process.<a name="line.995"></a>
+<span class="sourceLineNo">996</span>          toReturn = toReturn.replaceAll("\\+", "%2B");<a name="line.996"></a>
+<span class="sourceLineNo">997</span>          toReturn = URLDecoder.decode(toReturn, "UTF-8");<a name="line.997"></a>
+<span class="sourceLineNo">998</span>          return toReturn.replaceAll("!.*$", "");<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span><a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>    // now look in any jars we've packaged using JarFinder. Returns null when<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    // no jar is found.<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    return packagedClasses.get(class_file);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>  }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span><a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>  /**<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   * Invoke 'getJar' on a custom JarFinder implementation. Useful for some job<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>   * configuration contexts (HBASE-8140) and also for testing on MRv2.<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>   * check if we have HADOOP-9426.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>   * @param my_class the class to find.<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>   * @return a jar file that contains the class, or null.<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>   */<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>  private static String getJar(Class&lt;?&gt; my_class) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>    String ret = null;<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    try {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      ret = JarFinder.getJar(my_class);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    } catch (Exception e) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>      // toss all other exceptions, related to reflection failure<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      throw new RuntimeException("getJar invocation failed.", e);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    return ret;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>}<a name="line.1026"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html
index 43cc877..6408c36 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html
@@ -428,256 +428,259 @@
 <span class="sourceLineNo">420</span>    private int queuedPriority;<a name="line.420"></a>
 <span class="sourceLineNo">421</span>    private ThreadPoolExecutor parent;<a name="line.421"></a>
 <span class="sourceLineNo">422</span>    private User user;<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span>    public CompactionRunner(Store store, Region region,<a name="line.424"></a>
-<span class="sourceLineNo">425</span>        CompactionContext compaction, ThreadPoolExecutor parent, User user) {<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      super();<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      this.store = store;<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      this.region = (HRegion)region;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>      this.compaction = compaction;<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      this.queuedPriority = (this.compaction == null)<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          ? store.getCompactPriority() : compaction.getRequest().getPriority();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      this.parent = parent;<a name="line.432"></a>
-<span class="sourceLineNo">433</span>      this.user = user;<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    public String toString() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      return (this.compaction != null) ? ("Request = " + compaction.getRequest())<a name="line.438"></a>
-<span class="sourceLineNo">439</span>          : ("Store = " + store.toString() + ", pri = " + queuedPriority);<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span>    private void doCompaction(User user) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>      // Common case - system compaction without a file selection. Select now.<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      if (this.compaction == null) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>        int oldPriority = this.queuedPriority;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>        this.queuedPriority = this.store.getCompactPriority();<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        if (this.queuedPriority &gt; oldPriority) {<a name="line.447"></a>
-<span class="sourceLineNo">448</span>          // Store priority decreased while we were in queue (due to some other compaction?),<a name="line.448"></a>
-<span class="sourceLineNo">449</span>          // requeue with new priority to avoid blocking potential higher priorities.<a name="line.449"></a>
-<span class="sourceLineNo">450</span>          this.parent.execute(this);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>          return;<a name="line.451"></a>
-<span class="sourceLineNo">452</span>        }<a name="line.452"></a>
-<span class="sourceLineNo">453</span>        try {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>          this.compaction = selectCompaction(this.region, this.store, queuedPriority, null, user);<a name="line.454"></a>
-<span class="sourceLineNo">455</span>        } catch (IOException ex) {<a name="line.455"></a>
-<span class="sourceLineNo">456</span>          LOG.error("Compaction selection failed " + this, ex);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>          server.checkFileSystem();<a name="line.457"></a>
-<span class="sourceLineNo">458</span>          return;<a name="line.458"></a>
-<span class="sourceLineNo">459</span>        }<a name="line.459"></a>
-<span class="sourceLineNo">460</span>        if (this.compaction == null) return; // nothing to do<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        // Now see if we are in correct pool for the size; if not, go to the correct one.<a name="line.461"></a>
-<span class="sourceLineNo">462</span>        // We might end up waiting for a while, so cancel the selection.<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        assert this.compaction.hasSelection();<a name="line.463"></a>
-<span class="sourceLineNo">464</span>        ThreadPoolExecutor pool = store.throttleCompaction(<a name="line.464"></a>
-<span class="sourceLineNo">465</span>            compaction.getRequest().getSize()) ? longCompactions : shortCompactions;<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>        // Long compaction pool can process small job<a name="line.467"></a>
-<span class="sourceLineNo">468</span>        // Short compaction pool should not process large job<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        if (this.parent == shortCompactions &amp;&amp; pool == longCompactions) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          this.store.cancelRequestedCompaction(this.compaction);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>          this.compaction = null;<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          this.parent = pool;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>          this.parent.execute(this);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>          return;<a name="line.474"></a>
-<span class="sourceLineNo">475</span>        }<a name="line.475"></a>
-<span class="sourceLineNo">476</span>      }<a name="line.476"></a>
-<span class="sourceLineNo">477</span>      // Finally we can compact something.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>      assert this.compaction != null;<a name="line.478"></a>
-<span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>      this.compaction.getRequest().beforeExecute();<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      try {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>        // Note: please don't put single-compaction logic here;<a name="line.482"></a>
-<span class="sourceLineNo">483</span>        //       put it into region/store/etc. This is CST logic.<a name="line.483"></a>
-<span class="sourceLineNo">484</span>        long start = EnvironmentEdgeManager.currentTime();<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        boolean completed =<a name="line.485"></a>
-<span class="sourceLineNo">486</span>            region.compact(compaction, store, compactionThroughputController, user);<a name="line.486"></a>
-<span class="sourceLineNo">487</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.487"></a>
-<span class="sourceLineNo">488</span>        LOG.info(((completed) ? "Completed" : "Aborted") + " compaction: " +<a name="line.488"></a>
-<span class="sourceLineNo">489</span>              this + "; duration=" + StringUtils.formatTimeDiff(now, start));<a name="line.489"></a>
-<span class="sourceLineNo">490</span>        if (completed) {<a name="line.490"></a>
-<span class="sourceLineNo">491</span>          // degenerate case: blocked regions require recursive enqueues<a name="line.491"></a>
-<span class="sourceLineNo">492</span>          if (store.getCompactPriority() &lt;= 0) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>            requestSystemCompaction(region, store, "Recursive enqueue");<a name="line.493"></a>
-<span class="sourceLineNo">494</span>          } else {<a name="line.494"></a>
-<span class="sourceLineNo">495</span>            // see if the compaction has caused us to exceed max region size<a name="line.495"></a>
-<span class="sourceLineNo">496</span>            requestSplit(region);<a name="line.496"></a>
-<span class="sourceLineNo">497</span>          }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>        }<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      } catch (IOException ex) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>        IOException remoteEx =<a name="line.500"></a>
-<span class="sourceLineNo">501</span>            ex instanceof RemoteException ? ((RemoteException) ex).unwrapRemoteException() : ex;<a name="line.501"></a>
-<span class="sourceLineNo">502</span>        LOG.error("Compaction failed " + this, remoteEx);<a name="line.502"></a>
-<span class="sourceLineNo">503</span>        if (remoteEx != ex) {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>          LOG.info("Compaction failed at original callstack: " + formatStackTrace(ex));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>        }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        region.reportCompactionRequestFailure();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>        server.checkFileSystem();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>      } catch (Exception ex) {<a name="line.508"></a>
-<span class="sourceLineNo">509</span>        LOG.error("Compaction failed " + this, ex);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>        region.reportCompactionRequestFailure();<a name="line.510"></a>
-<span class="sourceLineNo">511</span>        server.checkFileSystem();<a name="line.511"></a>
-<span class="sourceLineNo">512</span>      } finally {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        LOG.debug("CompactSplitThread Status: " + CompactSplitThread.this);<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      }<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      this.compaction.getRequest().afterExecute();<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>    @Override<a name="line.518"></a>
-<span class="sourceLineNo">519</span>    public void run() {<a name="line.519"></a>
-<span class="sourceLineNo">520</span>      Preconditions.checkNotNull(server);<a name="line.520"></a>
-<span class="sourceLineNo">521</span>      if (server.isStopped()<a name="line.521"></a>
-<span class="sourceLineNo">522</span>          || (region.getTableDesc() != null &amp;&amp; !region.getTableDesc().isCompactionEnabled())) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>        return;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
-<span class="sourceLineNo">525</span>      doCompaction(user);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>    }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>    private String formatStackTrace(Exception ex) {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>      StringWriter sw = new StringWriter();<a name="line.529"></a>
-<span class="sourceLineNo">530</span>      PrintWriter pw = new PrintWriter(sw);<a name="line.530"></a>
-<span class="sourceLineNo">531</span>      ex.printStackTrace(pw);<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      pw.flush();<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      return sw.toString();<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    }<a name="line.534"></a>
-<span class="sourceLineNo">535</span><a name="line.535"></a>
-<span class="sourceLineNo">536</span>    @Override<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    public int compareTo(CompactionRunner o) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>      // Only compare the underlying request (if any), for queue sorting purposes.<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      int compareVal = queuedPriority - o.queuedPriority; // compare priority<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      if (compareVal != 0) return compareVal;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      CompactionContext tc = this.compaction, oc = o.compaction;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>      // Sort pre-selected (user?) compactions before system ones with equal priority.<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      return (tc == null) ? ((oc == null) ? 0 : 1)<a name="line.543"></a>
-<span class="sourceLineNo">544</span>          : ((oc == null) ? -1 : tc.getRequest().compareTo(oc.getRequest()));<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    }<a name="line.545"></a>
-<span class="sourceLineNo">546</span>  }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>  /**<a name="line.548"></a>
-<span class="sourceLineNo">549</span>   * Cleanup class to use when rejecting a compaction request from the queue.<a name="line.549"></a>
-<span class="sourceLineNo">550</span>   */<a name="line.550"></a>
-<span class="sourceLineNo">551</span>  private static class Rejection implements RejectedExecutionHandler {<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    @Override<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    public void rejectedExecution(Runnable runnable, ThreadPoolExecutor pool) {<a name="line.553"></a>
-<span class="sourceLineNo">554</span>      if (runnable instanceof CompactionRunner) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>        CompactionRunner runner = (CompactionRunner)runnable;<a name="line.555"></a>
-<span class="sourceLineNo">556</span>        LOG.debug("Compaction Rejected: " + runner);<a name="line.556"></a>
-<span class="sourceLineNo">557</span>        runner.store.cancelRequestedCompaction(runner.compaction);<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      }<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    }<a name="line.559"></a>
-<span class="sourceLineNo">560</span>  }<a name="line.560"></a>
-<span class="sourceLineNo">561</span><a name="line.561"></a>
-<span class="sourceLineNo">562</span>  /**<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * {@inheritDoc}<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   */<a name="line.564"></a>
-<span class="sourceLineNo">565</span>  @Override<a name="line.565"></a>
-<span class="sourceLineNo">566</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    // Check if number of large / small compaction threads has changed, and then<a name="line.567"></a>
-<span class="sourceLineNo">568</span>    // adjust the core pool size of the thread pools, by using the<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    // setCorePoolSize() method. According to the javadocs, it is safe to<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    // change the core pool size on-the-fly. We need to reset the maximum<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    // pool size, as well.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    int largeThreads = Math.max(1, newConf.getInt(<a name="line.572"></a>
-<span class="sourceLineNo">573</span>            LARGE_COMPACTION_THREADS,<a name="line.573"></a>
-<span class="sourceLineNo">574</span>            LARGE_COMPACTION_THREADS_DEFAULT));<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    if (this.longCompactions.getCorePoolSize() != largeThreads) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      LOG.info("Changing the value of " + LARGE_COMPACTION_THREADS +<a name="line.576"></a>
-<span class="sourceLineNo">577</span>              " from " + this.longCompactions.getCorePoolSize() + " to " +<a name="line.577"></a>
-<span class="sourceLineNo">578</span>              largeThreads);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      if(this.longCompactions.getCorePoolSize() &lt; largeThreads) {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.581"></a>
-<span class="sourceLineNo">582</span>      } else {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.583"></a>
-<span class="sourceLineNo">584</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
-<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
-<span class="sourceLineNo">587</span><a name="line.587"></a>
-<span class="sourceLineNo">588</span>    int smallThreads = newConf.getInt(SMALL_COMPACTION_THREADS,<a name="line.588"></a>
-<span class="sourceLineNo">589</span>            SMALL_COMPACTION_THREADS_DEFAULT);<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    if (this.shortCompactions.getCorePoolSize() != smallThreads) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      LOG.info("Changing the value of " + SMALL_COMPACTION_THREADS +<a name="line.591"></a>
-<span class="sourceLineNo">592</span>                " from " + this.shortCompactions.getCorePoolSize() + " to " +<a name="line.592"></a>
-<span class="sourceLineNo">593</span>                smallThreads);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      if(this.shortCompactions.getCorePoolSize() &lt; smallThreads) {<a name="line.594"></a>
-<span class="sourceLineNo">595</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      } else {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<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><a name="line.602"></a>
-<span class="sourceLineNo">603</span>    int splitThreads = newConf.getInt(SPLIT_THREADS,<a name="line.603"></a>
-<span class="sourceLineNo">604</span>            SPLIT_THREADS_DEFAULT);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (this.splits.getCorePoolSize() != splitThreads) {<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      LOG.info("Changing the value of " + SPLIT_THREADS +<a name="line.606"></a>
-<span class="sourceLineNo">607</span>                " from " + this.splits.getCorePoolSize() + " to " +<a name="line.607"></a>
-<span class="sourceLineNo">608</span>                splitThreads);<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      if(this.splits.getCorePoolSize() &lt; splitThreads) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.611"></a>
-<span class="sourceLineNo">612</span>      } else {<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      }<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    }<a name="line.616"></a>
-<span class="sourceLineNo">617</span><a name="line.617"></a>
-<span class="sourceLineNo">618</span>    ThroughputController old = this.compactionThroughputController;<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    if (old != null) {<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      old.stop("configuration change");<a name="line.620"></a>
-<span class="sourceLineNo">621</span>    }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>    this.compactionThroughputController =<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        CompactionThroughputControllerFactory.create(server, newConf);<a name="line.623"></a>
-<span class="sourceLineNo">624</span><a name="line.624"></a>
-<span class="sourceLineNo">625</span>    // We change this atomically here instead of reloading the config in order that upstream<a name="line.625"></a>
-<span class="sourceLineNo">626</span>    // would be the only one with the flexibility to reload the config.<a name="line.626"></a>
-<span class="sourceLineNo">627</span>    this.conf.reloadConfiguration();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>  }<a name="line.628"></a>
-<span class="sourceLineNo">629</span><a name="line.629"></a>
-<span class="sourceLineNo">630</span>  protected int getSmallCompactionThreadNum() {<a name="line.630"></a>
-<span class="sourceLineNo">631</span>    return this.shortCompactions.getCorePoolSize();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>  }<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span>  protected int getLargeCompactionThreadNum() {<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    return this.longCompactions.getCorePoolSize();<a name="line.635"></a>
-<span class="sourceLineNo">636</span>  }<a name="line.636"></a>
-<span class="sourceLineNo">637</span><a name="line.637"></a>
-<span class="sourceLineNo">638</span>  protected int getSplitThreadNum() {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>    return this.splits.getCorePoolSize();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>  }<a name="line.640"></a>
-<span class="sourceLineNo">641</span><a name="line.641"></a>
-<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * {@inheritDoc}<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   */<a name="line.644"></a>
-<span class="sourceLineNo">645</span>  @Override<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // No children to register.<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>   * {@inheritDoc}<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   */<a name="line.652"></a>
-<span class="sourceLineNo">653</span>  @Override<a name="line.653"></a>
-<span class="sourceLineNo">654</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    // No children to register<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  @VisibleForTesting<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  public ThroughputController getCompactionThroughputController() {<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    return compactionThroughputController;<a name="line.660"></a>
-<span class="sourceLineNo">661</span>  }<a name="line.661"></a>
-<span class="sourceLineNo">662</span><a name="line.662"></a>
-<span class="sourceLineNo">663</span>  @VisibleForTesting<a name="line.663"></a>
-<span class="sourceLineNo">664</span>  /**<a name="line.664"></a>
-<span class="sourceLineNo">665</span>   * Shutdown the long compaction thread pool.<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * Should only be used in unit test to prevent long compaction thread pool from stealing job<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   * from short compaction queue<a name="line.667"></a>
-<span class="sourceLineNo">668</span>   */<a name="line.668"></a>
-<span class="sourceLineNo">669</span>  void shutdownLongCompactions(){<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    this.longCompactions.shutdown();<a name="line.670"></a>
-<span class="sourceLineNo">671</span>  }<a name="line.671"></a>
-<span class="sourceLineNo">672</span>}<a name="line.672"></a>
+<span class="sourceLineNo">423</span>    private long time;<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>    public CompactionRunner(Store store, Region region,<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        CompactionContext compaction, ThreadPoolExecutor parent, User user) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      super();<a name="line.427"></a>
+<span class="sourceLineNo">428</span>      this.store = store;<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      this.region = (HRegion)region;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      this.compaction = compaction;<a name="line.430"></a>
+<span class="sourceLineNo">431</span>      this.queuedPriority = (this.compaction == null)<a name="line.431"></a>
+<span class="sourceLineNo">432</span>          ? store.getCompactPriority() : compaction.getRequest().getPriority();<a name="line.432"></a>
+<span class="sourceLineNo">433</span>      this.parent = parent;<a name="line.433"></a>
+<span class="sourceLineNo">434</span>      this.user = user;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      this.time =  System.currentTimeMillis();<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>    @Override<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    public String toString() {<a name="line.439"></a>
+<span class="sourceLineNo">440</span>      return (this.compaction != null) ? ("Request = " + compaction.getRequest())<a name="line.440"></a>
+<span class="sourceLineNo">441</span>          : ("regionName = " + region.toString() + ", storeName = " + store.toString() +<a name="line.441"></a>
+<span class="sourceLineNo">442</span>             ", priority = " + queuedPriority + ", time = " + time);<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>    private void doCompaction(User user) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      // Common case - system compaction without a file selection. Select now.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>      if (this.compaction == null) {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>        int oldPriority = this.queuedPriority;<a name="line.448"></a>
+<span class="sourceLineNo">449</span>        this.queuedPriority = this.store.getCompactPriority();<a name="line.449"></a>
+<span class="sourceLineNo">450</span>        if (this.queuedPriority &gt; oldPriority) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>          // Store priority decreased while we were in queue (due to some other compaction?),<a name="line.451"></a>
+<span class="sourceLineNo">452</span>          // requeue with new priority to avoid blocking potential higher priorities.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>          this.parent.execute(this);<a name="line.453"></a>
+<span class="sourceLineNo">454</span>          return;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        }<a name="line.455"></a>
+<span class="sourceLineNo">456</span>        try {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>          this.compaction = selectCompaction(this.region, this.store, queuedPriority, null, user);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>        } catch (IOException ex) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          LOG.error("Compaction selection failed " + this, ex);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>          server.checkFileSystem();<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          return;<a name="line.461"></a>
+<span class="sourceLineNo">462</span>        }<a name="line.462"></a>
+<span class="sourceLineNo">463</span>        if (this.compaction == null) return; // nothing to do<a name="line.463"></a>
+<span class="sourceLineNo">464</span>        // Now see if we are in correct pool for the size; if not, go to the correct one.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>        // We might end up waiting for a while, so cancel the selection.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>        assert this.compaction.hasSelection();<a name="line.466"></a>
+<span class="sourceLineNo">467</span>        ThreadPoolExecutor pool = store.throttleCompaction(<a name="line.467"></a>
+<span class="sourceLineNo">468</span>            compaction.getRequest().getSize()) ? longCompactions : shortCompactions;<a name="line.468"></a>
+<span class="sourceLineNo">469</span><a name="line.469"></a>
+<span class="sourceLineNo">470</span>        // Long compaction pool can process small job<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        // Short compaction pool should not process large job<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        if (this.parent == shortCompactions &amp;&amp; pool == longCompactions) {<a name="line.472"></a>
+<span class="sourceLineNo">473</span>          this.store.cancelRequestedCompaction(this.compaction);<a name="line.473"></a>
+<span class="sourceLineNo">474</span>          this.compaction = null;<a name="line.474"></a>
+<span class="sourceLineNo">475</span>          this.parent = pool;<a name="line.475"></a>
+<span class="sourceLineNo">476</span>          this.parent.execute(this);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>          return;<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        }<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>      // Finally we can compact something.<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      assert this.compaction != null;<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span>      this.compaction.getRequest().beforeExecute();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      try {<a name="line.484"></a>
+<span class="sourceLineNo">485</span>        // Note: please don't put single-compaction logic here;<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        //       put it into region/store/etc. This is CST logic.<a name="line.486"></a>
+<span class="sourceLineNo">487</span>        long start = EnvironmentEdgeManager.currentTime();<a name="line.487"></a>
+<span class="sourceLineNo">488</span>        boolean completed =<a name="line.488"></a>
+<span class="sourceLineNo">489</span>            region.compact(compaction, store, compactionThroughputController, user);<a name="line.489"></a>
+<span class="sourceLineNo">490</span>        long now = EnvironmentEdgeManager.currentTime();<a name="line.490"></a>
+<span class="sourceLineNo">491</span>        LOG.info(((completed) ? "Completed" : "Aborted") + " compaction: " +<a name="line.491"></a>
+<span class="sourceLineNo">492</span>              this + "; duration=" + StringUtils.formatTimeDiff(now, start));<a name="line.492"></a>
+<span class="sourceLineNo">493</span>        if (completed) {<a name="line.493"></a>
+<span class="sourceLineNo">494</span>          // degenerate case: blocked regions require recursive enqueues<a name="line.494"></a>
+<span class="sourceLineNo">495</span>          if (store.getCompactPriority() &lt;= 0) {<a name="line.495"></a>
+<span class="sourceLineNo">496</span>            requestSystemCompaction(region, store, "Recursive enqueue");<a name="line.496"></a>
+<span class="sourceLineNo">497</span>          } else {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>            // see if the compaction has caused us to exceed max region size<a name="line.498"></a>
+<span class="sourceLineNo">499</span>            requestSplit(region);<a name="line.499"></a>
+<span class="sourceLineNo">500</span>          }<a name="line.500"></a>
+<span class="sourceLineNo">501</span>        }<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      } catch (IOException ex) {<a name="line.502"></a>
+<span class="sourceLineNo">503</span>        IOException remoteEx =<a name="line.503"></a>
+<span class="sourceLineNo">504</span>            ex instanceof RemoteException ? ((RemoteException) ex).unwrapRemoteException() : ex;<a name="line.504"></a>
+<span class="sourceLineNo">505</span>        LOG.error("Compaction failed " + this, remoteEx);<a name="line.505"></a>
+<span class="sourceLineNo">506</span>        if (remoteEx != ex) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>          LOG.info("Compaction failed at original callstack: " + formatStackTrace(ex));<a name="line.507"></a>
+<span class="sourceLineNo">508</span>        }<a name="line.508"></a>
+<span class="sourceLineNo">509</span>        region.reportCompactionRequestFailure();<a name="line.509"></a>
+<span class="sourceLineNo">510</span>        server.checkFileSystem();<a name="line.510"></a>
+<span class="sourceLineNo">511</span>      } catch (Exception ex) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>        LOG.error("Compaction failed " + this, ex);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>        region.reportCompactionRequestFailure();<a name="line.513"></a>
+<span class="sourceLineNo">514</span>        server.checkFileSystem();<a name="line.514"></a>
+<span class="sourceLineNo">515</span>      } finally {<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        LOG.debug("CompactSplitThread Status: " + CompactSplitThread.this);<a name="line.516"></a>
+<span class="sourceLineNo">517</span>      }<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      this.compaction.getRequest().afterExecute();<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    }<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span>    @Override<a name="line.521"></a>
+<span class="sourceLineNo">522</span>    public void run() {<a name="line.522"></a>
+<span class="sourceLineNo">523</span>      Preconditions.checkNotNull(server);<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      if (server.isStopped()<a name="line.524"></a>
+<span class="sourceLineNo">525</span>          || (region.getTableDesc() != null &amp;&amp; !region.getTableDesc().isCompactionEnabled())) {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>        return;<a name="line.526"></a>
+<span class="sourceLineNo">527</span>      }<a name="line.527"></a>
+<span class="sourceLineNo">528</span>      doCompaction(user);<a name="line.528"></a>
+<span class="sourceLineNo">529</span>    }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span>    private String formatStackTrace(Exception ex) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span>      StringWriter sw = new StringWriter();<a name="line.532"></a>
+<span class="sourceLineNo">533</span>      PrintWriter pw = new PrintWriter(sw);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>      ex.printStackTrace(pw);<a name="line.534"></a>
+<span class="sourceLineNo">535</span>      pw.flush();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>      return sw.toString();<a name="line.536"></a>
+<span class="sourceLineNo">537</span>    }<a name="line.537"></a>
+<span class="sourceLineNo">538</span><a name="line.538"></a>
+<span class="sourceLineNo">539</span>    @Override<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    public int compareTo(CompactionRunner o) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      // Only compare the underlying request (if any), for queue sorting purposes.<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      int compareVal = queuedPriority - o.queuedPriority; // compare priority<a name="line.542"></a>
+<span class="sourceLineNo">543</span>      if (compareVal != 0) return compareVal;<a name="line.543"></a>
+<span class="sourceLineNo">544</span>      CompactionContext tc = this.compaction, oc = o.compaction;<a name="line.544"></a>
+<span class="sourceLineNo">545</span>      // Sort pre-selected (user?) compactions before system ones with equal priority.<a name="line.545"></a>
+<span class="sourceLineNo">546</span>      return (tc == null) ? ((oc == null) ? 0 : 1)<a name="line.546"></a>
+<span class="sourceLineNo">547</span>          : ((oc == null) ? -1 : tc.getRequest().compareTo(oc.getRequest()));<a name="line.547"></a>
+<span class="sourceLineNo">548</span>    }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>  }<a name="line.549"></a>
+<span class="sourceLineNo">550</span><a name="line.550"></a>
+<span class="sourceLineNo">551</span>  /**<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * Cleanup class to use when rejecting a compaction request from the queue.<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  private static class Rejection implements RejectedExecutionHandler {<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    @Override<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    public void rejectedExecution(Runnable runnable, ThreadPoolExecutor pool) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span>      if (runnable instanceof CompactionRunner) {<a name="line.557"></a>
+<span class="sourceLineNo">558</span>        CompactionRunner runner = (CompactionRunner)runnable;<a name="line.558"></a>
+<span class="sourceLineNo">559</span>        LOG.debug("Compaction Rejected: " + runner);<a name="line.559"></a>
+<span class="sourceLineNo">560</span>        runner.store.cancelRequestedCompaction(runner.compaction);<a name="line.560"></a>
+<span class="sourceLineNo">561</span>      }<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    }<a name="line.562"></a>
+<span class="sourceLineNo">563</span>  }<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   * {@inheritDoc}<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   */<a name="line.567"></a>
+<span class="sourceLineNo">568</span>  @Override<a name="line.568"></a>
+<span class="sourceLineNo">569</span>  public void onConfigurationChange(Configuration newConf) {<a name="line.569"></a>
+<span class="sourceLineNo">570</span>    // Check if number of large / small compaction threads has changed, and then<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    // adjust the core pool size of the thread pools, by using the<a name="line.571"></a>
+<span class="sourceLineNo">572</span>    // setCorePoolSize() method. According to the javadocs, it is safe to<a name="line.572"></a>
+<span class="sourceLineNo">573</span>    // change the core pool size on-the-fly. We need to reset the maximum<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    // pool size, as well.<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    int largeThreads = Math.max(1, newConf.getInt(<a name="line.575"></a>
+<span class="sourceLineNo">576</span>            LARGE_COMPACTION_THREADS,<a name="line.576"></a>
+<span class="sourceLineNo">577</span>            LARGE_COMPACTION_THREADS_DEFAULT));<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    if (this.longCompactions.getCorePoolSize() != largeThreads) {<a name="line.578"></a>
+<span class="sourceLineNo">579</span>      LOG.info("Changing the value of " + LARGE_COMPACTION_THREADS +<a name="line.579"></a>
+<span class="sourceLineNo">580</span>              " from " + this.longCompactions.getCorePoolSize() + " to " +<a name="line.580"></a>
+<span class="sourceLineNo">581</span>              largeThreads);<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      if(this.longCompactions.getCorePoolSize() &lt; largeThreads) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.583"></a>
+<span class="sourceLineNo">584</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      } else {<a name="line.585"></a>
+<span class="sourceLineNo">586</span>        this.longCompactions.setCorePoolSize(largeThreads);<a name="line.586"></a>
+<span class="sourceLineNo">587</span>        this.longCompactions.setMaximumPoolSize(largeThreads);<a name="line.587"></a>
+<span class="sourceLineNo">588</span>      }<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    }<a name="line.589"></a>
+<span class="sourceLineNo">590</span><a name="line.590"></a>
+<span class="sourceLineNo">591</span>    int smallThreads = newConf.getInt(SMALL_COMPACTION_THREADS,<a name="line.591"></a>
+<span class="sourceLineNo">592</span>            SMALL_COMPACTION_THREADS_DEFAULT);<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    if (this.shortCompactions.getCorePoolSize() != smallThreads) {<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      LOG.info("Changing the value of " + SMALL_COMPACTION_THREADS +<a name="line.594"></a>
+<span class="sourceLineNo">595</span>                " from " + this.shortCompactions.getCorePoolSize() + " to " +<a name="line.595"></a>
+<span class="sourceLineNo">596</span>                smallThreads);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>      if(this.shortCompactions.getCorePoolSize() &lt; smallThreads) {<a name="line.597"></a>
+<span class="sourceLineNo">598</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      } else {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>        this.shortCompactions.setCorePoolSize(smallThreads);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        this.shortCompactions.setMaximumPoolSize(smallThreads);<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><a name="line.605"></a>
+<span class="sourceLineNo">606</span>    int splitThreads = newConf.getInt(SPLIT_THREADS,<a name="line.606"></a>
+<span class="sourceLineNo">607</span>            SPLIT_THREADS_DEFAULT);<a name="line.607"></a>
+<span class="sourceLineNo">608</span>    if (this.splits.getCorePoolSize() != splitThreads) {<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      LOG.info("Changing the value of " + SPLIT_THREADS +<a name="line.609"></a>
+<span class="sourceLineNo">610</span>                " from " + this.splits.getCorePoolSize() + " to " +<a name="line.610"></a>
+<span class="sourceLineNo">611</span>                splitThreads);<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      if(this.splits.getCorePoolSize() &lt; splitThreads) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.614"></a>
+<span class="sourceLineNo">615</span>      } else {<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        this.splits.setCorePoolSize(splitThreads);<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        this.splits.setMaximumPoolSize(splitThreads);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>      }<a name="line.618"></a>
+<span class="sourceLineNo">619</span>    }<a name="line.619"></a>
+<span class="sourceLineNo">620</span><a name="line.620"></a>
+<span class="sourceLineNo">621</span>    ThroughputController old = this.compactionThroughputController;<a name="line.621"></a>
+<span class="sourceLineNo">622</span>    if (old != null) {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>      old.stop("configuration change");<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    }<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    this.compactionThroughputController =<a name="line.625"></a>
+<span class="sourceLineNo">626</span>        CompactionThroughputControllerFactory.create(server, newConf);<a name="line.626"></a>
+<span class="sourceLineNo">627</span><a name="line.627"></a>
+<span class="sourceLineNo">628</span>    // We change this atomically here instead of reloading the config in order that upstream<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    // would be the only one with the flexibility to reload the config.<a name="line.629"></a>
+<span class="sourceLineNo">630</span>    this.conf.reloadConfiguration();<a name="line.630"></a>
+<span class="sourceLineNo">631</span>  }<a name="line.631"></a>
+<span class="sourceLineNo">632</span><a name="line.632"></a>
+<span class="sourceLineNo">633</span>  protected int getSmallCompactionThreadNum() {<a name="line.633"></a>
+<span class="sourceLineNo">634</span>    return this.shortCompactions.getCorePoolSize();<a name="line.634"></a>
+<span class="sourceLineNo">635</span>  }<a name="line.635"></a>
+<span class="sourceLineNo">636</span><a name="line.636"></a>
+<span class="sourceLineNo">637</span>  protected int getLargeCompactionThreadNum() {<a name="line.637"></a>
+<span class="sourceLineNo">638</span>    return this.longCompactions.getCorePoolSize();<a name="line.638"></a>
+<span class="sourceLineNo">639</span>  }<a name="line.639"></a>
+<span class="sourceLineNo">640</span><a name="line.640"></a>
+<span class="sourceLineNo">641</span>  protected int getSplitThreadNum() {<a name="line.641"></a>
+<span class="sourceLineNo">642</span>    return this.splits.getCorePoolSize();<a name="line.642"></a>
+<span class="sourceLineNo">643</span>  }<a name="line.643"></a>
+<span class="sourceLineNo">644</span><a name="line.644"></a>
+<span class="sourceLineNo">645</span>  /**<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   * {@inheritDoc}<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
+<span class="sourceLineNo">648</span>  @Override<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.649"></a>
+<span class="sourceLineNo">650</span>    // No children to register.<a name="line.650"></a>
+<span class="sourceLineNo">651</span>  }<a name="line.651"></a>
+<span class="sourceLineNo">652</span><a name="line.652"></a>
+<span class="sourceLineNo">653</span>  /**<a name="line.653"></a>
+<span class="sourceLineNo">654</span>   * {@inheritDoc}<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  @Override<a name="line.656"></a>
+<span class="sourceLineNo">657</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.657"></a>
+<span class="sourceLineNo">658</span>    // No children to register<a name="line.658"></a>
+<span class="sourceLineNo">659</span>  }<a name="line.659"></a>
+<span class="sourceLineNo">660</span><a name="line.660"></a>
+<span class="sourceLineNo">661</span>  @VisibleForTesting<a name="line.661"></a>
+<span class="sourceLineNo">662</span>  public ThroughputController getCompactionThroughputController() {<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    return compactionThroughputController;<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>  @VisibleForTesting<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  /**<a name="line.667"></a>
+<span class="sourceLineNo">668</span>   * Shutdown the long compaction thread pool.<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * Should only be used in unit test to prevent long compaction thread pool from stealing job<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * from short compaction queue<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   */<a name="line.671"></a>
+<span class="sourceLineNo">672</span>  void shutdownLongCompactions(){<a name="line.672"></a>
+<span class="sourceLineNo">673</span>    this.longCompactions.shutdown();<a name="line.673"></a>
+<span class="sourceLineNo">674</span>  }<a name="line.674"></a>
+<span class="sourceLineNo">675</span>}<a name="line.675"></a>
 
 
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html
index 92d61bd..4a7fb41 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2036">AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2312">AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AddColumnFamilyProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html#line.2038">AddColumnFamilyProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html#line.2314">AddColumnFamilyProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html#line.2042">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html#line.2318">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html
index 11853c7..98e7aea 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
-private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.241">AsyncHBaseAdmin.AdminRpcCall</a>&lt;RESP,REQ&gt;</pre>
+private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.249">AsyncHBaseAdmin.AdminRpcCall</a>&lt;RESP,REQ&gt;</pre>
 </li>
 </ul>
 </div>
@@ -159,7 +159,7 @@ private static interface <a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html#line.242">call</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&nbsp;stub,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html#line.250">call</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.Interface&nbsp;stub,
           <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
           <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html" title="type parameter in AsyncHBaseAdmin.AdminRpcCall">REQ</a>&nbsp;req,
           org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback&lt;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AdminRpcCall.html" title="type parameter in AsyncHBaseAdmin.AdminRpcCall">RESP</a>&gt;&nbsp;done)</pre>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html
index 36ca3f5..f2f2634 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
-private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.247">AsyncHBaseAdmin.Converter</a>&lt;D,S&gt;</pre>
+private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.255">AsyncHBaseAdmin.Converter</a>&lt;D,S&gt;</pre>
 </li>
 </ul>
 </div>
@@ -156,7 +156,7 @@ private static interface <a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>convert</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html" title="type parameter in AsyncHBaseAdmin.Converter">D</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html#line.248">convert</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html" title="type parameter in AsyncHBaseAdmin.Converter">S</a>&nbsp;src)
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html" title="type parameter in AsyncHBaseAdmin.Converter">D</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html#line.256">convert</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html" title="type parameter in AsyncHBaseAdmin.Converter">S</a>&nbsp;src)
    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html
index 4d37334..5562e8b 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2069">AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2345">AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.NamespaceProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.N
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CreateNamespaceProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html#line.2071">CreateNamespaceProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html#line.2347">CreateNamespaceProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.N
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html#line.2075">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html#line.2351">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.NamespaceProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html
index fe0c4cb..2a94c30 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.1975">AsyncHBaseAdmin.CreateTableProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2251">AsyncHBaseAdmin.CreateTableProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CreateTableProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html#line.1977">CreateTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html#line.2253">CreateTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html#line.1981">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html#line.2257">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html
index 68e1357..6012b5d 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2047">AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2323">AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DeleteColumnFamilyProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html#line.2049">DeleteColumnFamilyProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html#line.2325">DeleteColumnFamilyProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html#line.2053">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html#line.2329">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html
index e296295..668ccf3 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2080">AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2356">AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.NamespaceProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.N
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DeleteNamespaceProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html#line.2082">DeleteNamespaceProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html#line.2358">DeleteNamespaceProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.N
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html#line.2086">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html#line.2362">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.NamespaceProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html
index f3f4448..5708ece 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.1986">AsyncHBaseAdmin.DeleteTableProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2262">AsyncHBaseAdmin.DeleteTableProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -244,7 +244,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DeleteTableProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html#line.1988">DeleteTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html#line.2264">DeleteTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -262,7 +262,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockList">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html#line.1992">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html#line.2268">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>
@@ -275,7 +275,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>onFinished</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html#line.1997">onFinished</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html#line.2273">onFinished</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#onFinished--">onFinished</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html
index be2866f..5058fd5 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2025">AsyncHBaseAdmin.DisableTableProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2301">AsyncHBaseAdmin.DisableTableProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DisableTableProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html#line.2027">DisableTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html#line.2303">DisableTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                 <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html#line.2031">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html#line.2307">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html
index b695d28..d3f8163 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2014">AsyncHBaseAdmin.EnableTableProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2290">AsyncHBaseAdmin.EnableTableProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EnableTableProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html#line.2016">EnableTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html#line.2292">EnableTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html#line.2020">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html#line.2296">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html
index 984775a..b0b3eac 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
-private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.235">AsyncHBaseAdmin.MasterRpcCall</a>&lt;RESP,REQ&gt;</pre>
+private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.243">AsyncHBaseAdmin.MasterRpcCall</a>&lt;RESP,REQ&gt;</pre>
 </li>
 </ul>
 </div>
@@ -159,7 +159,7 @@ private static interface <a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html#line.236">call</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&nbsp;stub,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html#line.244">call</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService.Interface&nbsp;stub,
           <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
           <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html" title="type parameter in AsyncHBaseAdmin.MasterRpcCall">REQ</a>&nbsp;req,
           org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback&lt;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html" title="type parameter in AsyncHBaseAdmin.MasterRpcCall">RESP</a>&gt;&nbsp;done)</pre>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
index 50682f5..3417270 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2102">AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2378">AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MergeTableRegionProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html#line.2104">MergeTableRegionProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html#line.2380">MergeTableRegionProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                     <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html#line.2108">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html#line.2384">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
index 5799c85..4e38508 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2058">AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2334">AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ModifyColumnFamilyProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html#line.2060">ModifyColumnFamilyProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html#line.2336">ModifyColumnFamilyProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                       <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html#line.2064">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html#line.2340">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
index 32268ee..278ebeb 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2091">AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2367">AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.NamespaceProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.N
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ModifyNamespaceProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html#line.2093">ModifyNamespaceProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html#line.2369">ModifyNamespaceProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.N
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html#line.2097">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html#line.2373">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.NamespaceProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
index 710038d..32b777c 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
@@ -126,7 +126,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.1950">AsyncHBaseAdmin.NamespaceProcedureBiConsumer</a>
+<pre>private abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2226">AsyncHBaseAdmin.NamespaceProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.ProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -248,7 +248,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockListLast">
 <li class="blockList">
 <h4>namespaceName</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.1951">namespaceName</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.2227">namespaceName</a></pre>
 </li>
 </ul>
 </li>
@@ -265,7 +265,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NamespaceProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.1953">NamespaceProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.2229">NamespaceProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespaceName)</pre>
 </li>
 </ul>
@@ -283,7 +283,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockList">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre>abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.1958">getOperationType</a>()</pre>
+<pre>abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.2234">getOperationType</a>()</pre>
 </li>
 </ul>
 <a name="getDescription--">
@@ -292,7 +292,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockList">
 <li class="blockList">
 <h4>getDescription</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.1960">getDescription</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.2236">getDescription</a>()</pre>
 </li>
 </ul>
 <a name="onFinished--">
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockList">
 <li class="blockList">
 <h4>onFinished</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.1965">onFinished</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.2241">onFinished</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#onFinished--">onFinished</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.ProcedureBiConsumer</a></code></dd>
@@ -314,7 +314,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockListLast">
 <li class="blockList">
 <h4>onError</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.1970">onError</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html#line.2246">onError</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#onError-java.lang.Throwable-">onError</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.ProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html
index fed5f99..ef8d291 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.1903">AsyncHBaseAdmin.ProcedureBiConsumer</a>
+<pre>private abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2179">AsyncHBaseAdmin.ProcedureBiConsumer</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/BiConsumer.html?is-external=true" title="class or interface in java.util.function">BiConsumer</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&gt;</pre>
 </li>
@@ -226,7 +226,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>admin</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.1904">admin</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.2180">admin</a></pre>
 </li>
 </ul>
 </li>
@@ -243,7 +243,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.1906">ProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.2182">ProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin)</pre>
 </li>
 </ul>
 </li>
@@ -260,7 +260,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/
 <ul class="blockList">
 <li class="blockList">
 <h4>onFinished</h4>
-<pre>abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.1910">onFinished</a>()</pre>
+<pre>abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.2186">onFinished</a>()</pre>
 </li>
 </ul>
 <a name="onError-java.lang.Throwable-">
@@ -269,7 +269,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/
 <ul class="blockList">
 <li class="blockList">
 <h4>onError</h4>
-<pre>abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.1912">onError</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
+<pre>abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.2188">onError</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
 </li>
 </ul>
 <a name="accept-java.lang.Void-java.lang.Throwable-">
@@ -278,7 +278,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>accept</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.1915">accept</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;v,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#line.2191">accept</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&nbsp;v,
                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html
index 3b18507..3276cdf 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html?is-external=true" title="class or interface in java.lang">@FunctionalInterface</a>
-private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.309">AsyncHBaseAdmin.TableOperator</a></pre>
+private static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.317">AsyncHBaseAdmin.TableOperator</a></pre>
 </li>
 </ul>
 </div>
@@ -154,7 +154,7 @@ private static interface <a href="../../../../../src-html/org/apache/hadoop/hbas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>operate</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html#line.310">operate</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html#line.318">operate</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html
index cbca19d..088b512 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html
@@ -126,7 +126,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.1924">AsyncHBaseAdmin.TableProcedureBiConsumer</a>
+<pre>private abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2200">AsyncHBaseAdmin.TableProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.ProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -248,7 +248,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockListLast">
 <li class="blockList">
 <h4>tableName</h4>
-<pre>protected final&nbsp;<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/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.1925">tableName</a></pre>
+<pre>protected final&nbsp;<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/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.2201">tableName</a></pre>
 </li>
 </ul>
 </li>
@@ -265,7 +265,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TableProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.1927">TableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.2203">TableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                          <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -283,7 +283,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockList">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre>abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.1932">getOperationType</a>()</pre>
+<pre>abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.2208">getOperationType</a>()</pre>
 </li>
 </ul>
 <a name="getDescription--">
@@ -292,7 +292,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockList">
 <li class="blockList">
 <h4>getDescription</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.1934">getDescription</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.2210">getDescription</a>()</pre>
 </li>
 </ul>
 <a name="onFinished--">
@@ -301,7 +301,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockList">
 <li class="blockList">
 <h4>onFinished</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.1940">onFinished</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.2216">onFinished</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#onFinished--">onFinished</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.ProcedureBiConsumer</a></code></dd>
@@ -314,7 +314,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.P
 <ul class="blockListLast">
 <li class="blockList">
 <h4>onError</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.1945">onError</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#line.2221">onError</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html#onError-java.lang.Throwable-">onError</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.ProcedureBiConsumer</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html
index 6aaedb4..14c5304 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2003">AsyncHBaseAdmin.TruncateTableProcedureBiConsumer</a>
+<pre>private class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.2279">AsyncHBaseAdmin.TruncateTableProcedureBiConsumer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></pre>
 </li>
 </ul>
@@ -240,7 +240,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TruncateTableProcedureBiConsumer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html#line.2005">TruncateTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html#line.2281">TruncateTableProcedureBiConsumer</a>(<a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a>&nbsp;admin,
                                  <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
@@ -258,7 +258,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.T
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getOperationType</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html#line.2009">getOperationType</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TruncateTableProcedureBiConsumer.html#line.2285">getOperationType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html#getOperationType--">getOperationType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.TableProcedureBiConsumer</a></code></dd>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"></a>
+<span class="sourceLineNo

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html
index 84aca73..ade512b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html
@@ -414,397 +414,482 @@
 <span class="sourceLineNo">406</span>  CompletableFuture&lt;Void&gt; closeRegion(ServerName sn, HRegionInfo hri);<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>   * Merge two regions.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @param nameOfRegionA encoded or full name of region a<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   * @param nameOfRegionB encoded or full name of region b<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   * @param forcible true if do a compulsory merge, otherwise we will only merge two adjacent<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   *          regions<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  CompletableFuture&lt;Void&gt; mergeRegions(final byte[] nameOfRegionA, final byte[] nameOfRegionB,<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      final boolean forcible);<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  /**<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * Split a table. The method will execute split action for each region in table.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @param tableName table to split<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   */<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  CompletableFuture&lt;Void&gt; split(final TableName tableName);<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>   * Split an individual region.<a name="line.425"></a>
-<span class="sourceLineNo">426</span>   * @param regionName region to split<a name="line.426"></a>
-<span class="sourceLineNo">427</span>   */<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  CompletableFuture&lt;Void&gt; splitRegion(final byte[] regionName);<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>   * Split a table.<a name="line.431"></a>
-<span class="sourceLineNo">432</span>   * @param tableName table to split<a name="line.432"></a>
-<span class="sourceLineNo">433</span>   * @param splitPoint the explicit position to split on<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   */<a name="line.434"></a>
-<span class="sourceLineNo">435</span>  CompletableFuture&lt;Void&gt; split(final TableName tableName, final byte[] splitPoint);<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>   * Split an individual region.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   * @param regionName region to split<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   * @param splitPoint the explicit position to split on<a name="line.440"></a>
+<span class="sourceLineNo">409</span>   * Get all the online regions on a region server.<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   */<a name="line.410"></a>
+<span class="sourceLineNo">411</span>  CompletableFuture&lt;List&lt;HRegionInfo&gt;&gt; getOnlineRegions(ServerName sn);<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>   * Flush a table.<a name="line.414"></a>
+<span class="sourceLineNo">415</span>   * @param tableName table to flush<a name="line.415"></a>
+<span class="sourceLineNo">416</span>   */<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  CompletableFuture&lt;Void&gt; flush(TableName tableName);<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>  /**<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   * Flush an individual region.<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   * @param regionName region to flush<a name="line.421"></a>
+<span class="sourceLineNo">422</span>   */<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  CompletableFuture&lt;Void&gt; flushRegion(byte[] regionName);<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  /**<a name="line.425"></a>
+<span class="sourceLineNo">426</span>   * Compact a table. Asynchronous operation even if CompletableFuture.get().<a name="line.426"></a>
+<span class="sourceLineNo">427</span>   * @param tableName table to compact<a name="line.427"></a>
+<span class="sourceLineNo">428</span>   */<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  CompletableFuture&lt;Void&gt; compact(TableName tableName);<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>  /**<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   * Compact a column family within a table. Asynchronous operation even if CompletableFuture.get().<a name="line.432"></a>
+<span class="sourceLineNo">433</span>   * @param tableName table to compact<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   * @param columnFamily column family within a table<a name="line.434"></a>
+<span class="sourceLineNo">435</span>   */<a name="line.435"></a>
+<span class="sourceLineNo">436</span>  CompletableFuture&lt;Void&gt; compact(TableName tableName, byte[] columnFamily);<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>   * Compact an individual region. Asynchronous operation even if CompletableFuture.get().<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @param regionName region to compact<a name="line.440"></a>
 <span class="sourceLineNo">441</span>   */<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  CompletableFuture&lt;Void&gt; splitRegion(final byte[] regionName, final byte[] splitPoint);<a name="line.442"></a>
+<span class="sourceLineNo">442</span>  CompletableFuture&lt;Void&gt; compactRegion(byte[] regionName);<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>   * @param regionName Encoded or full name of region to assign.<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   */<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  CompletableFuture&lt;Void&gt; assign(final byte[] regionName);<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span>  /**<a name="line.449"></a>
-<span class="sourceLineNo">450</span>   * Unassign a region from current hosting regionserver. Region will then be assigned to a<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   * regionserver chosen at random. Region could be reassigned back to the same server. Use<a name="line.451"></a>
-<span class="sourceLineNo">452</span>   * {@link #move(byte[], byte[])} if you want to control the region movement.<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * @param regionName Encoded or full name of region to unassign. Will clear any existing<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   *          RegionPlan if one found.<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @param force If true, force unassign (Will remove region from regions-in-transition too if<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   *          present. If results in double assignment use hbck -fix to resolve. To be used by<a name="line.456"></a>
-<span class="sourceLineNo">457</span>   *          experts).<a name="line.457"></a>
-<span class="sourceLineNo">458</span>   */<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  CompletableFuture&lt;Void&gt; unassign(final byte[] regionName, final boolean force);<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span>  /**<a name="line.461"></a>
-<span class="sourceLineNo">462</span>   * Offline specified region from master's in-memory state. It will not attempt to reassign the<a name="line.462"></a>
-<span class="sourceLineNo">463</span>   * region as in unassign. This API can be used when a region not served by any region server and<a name="line.463"></a>
-<span class="sourceLineNo">464</span>   * still online as per Master's in memory state. If this API is incorrectly used on active region<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * then master will loose track of that region. This is a special method that should be used by<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * experts or hbck.<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @param regionName Encoded or full name of region to offline<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   */<a name="line.468"></a>
-<span class="sourceLineNo">469</span>  CompletableFuture&lt;Void&gt; offline(final byte[] regionName);<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span>  /**<a name="line.471"></a>
-<span class="sourceLineNo">472</span>   * Move the region &lt;code&gt;r&lt;/code&gt; to &lt;code&gt;dest&lt;/code&gt;.<a name="line.472"></a>
-<span class="sourceLineNo">473</span>   * @param regionName Encoded or full name of region to move.<a name="line.473"></a>
-<span class="sourceLineNo">474</span>   * @param destServerName The servername of the destination regionserver. If passed the empty byte<a name="line.474"></a>
-<span class="sourceLineNo">475</span>   *          array we'll assign to a random server. A server name is made of host, port and<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   *          startcode. Here is an example: &lt;code&gt; host187.example.com,60020,1289493121758&lt;/code&gt;<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   */<a name="line.477"></a>
-<span class="sourceLineNo">478</span>  CompletableFuture&lt;Void&gt; move(final byte[] regionName, final byte[] destServerName);<a name="line.478"></a>
-<span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>  /**<a name="line.480"></a>
-<span class="sourceLineNo">481</span>   * Apply the new quota settings.<a name="line.481"></a>
-<span class="sourceLineNo">482</span>   * @param quota the quota settings<a name="line.482"></a>
-<span class="sourceLineNo">483</span>   */<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  CompletableFuture&lt;Void&gt; setQuota(final QuotaSettings quota);<a name="line.484"></a>
-<span class="sourceLineNo">485</span><a name="line.485"></a>
-<span class="sourceLineNo">486</span>  /**<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * List the quotas based on the filter.<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * @param filter the quota settings filter<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * @return the QuotaSetting list, which wrapped by a CompletableFuture.<a name="line.489"></a>
+<span class="sourceLineNo">445</span>   * Compact a column family within a region. Asynchronous operation even if<a name="line.445"></a>
+<span class="sourceLineNo">446</span>   * CompletableFuture.get().<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   * @param regionName region to compact<a name="line.447"></a>
+<span class="sourceLineNo">448</span>   * @param columnFamily column family within a region<a name="line.448"></a>
+<span class="sourceLineNo">449</span>   */<a name="line.449"></a>
+<span class="sourceLineNo">450</span>  CompletableFuture&lt;Void&gt; compactRegion(byte[] regionName, byte[] columnFamily);<a name="line.450"></a>
+<span class="sourceLineNo">451</span><a name="line.451"></a>
+<span class="sourceLineNo">452</span>  /**<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   * Major compact a table. Asynchronous operation even if CompletableFuture.get().<a name="line.453"></a>
+<span class="sourceLineNo">454</span>   * @param tableName table to major compact<a name="line.454"></a>
+<span class="sourceLineNo">455</span>   */<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  CompletableFuture&lt;Void&gt; majorCompact(TableName tableName);<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>   * Major compact a column family within a table. Asynchronous operation even if<a name="line.459"></a>
+<span class="sourceLineNo">460</span>   * CompletableFuture.get().<a name="line.460"></a>
+<span class="sourceLineNo">461</span>   * @param tableName table to major compact<a name="line.461"></a>
+<span class="sourceLineNo">462</span>   * @param columnFamily column family within a table<a name="line.462"></a>
+<span class="sourceLineNo">463</span>   */<a name="line.463"></a>
+<span class="sourceLineNo">464</span>  CompletableFuture&lt;Void&gt; majorCompact(TableName tableName, byte[] columnFamily);<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>   * Major compact a table or an individual region. Asynchronous operation even if<a name="line.467"></a>
+<span class="sourceLineNo">468</span>   * CompletableFuture.get().<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * @param regionName region to major compact<a name="line.469"></a>
+<span class="sourceLineNo">470</span>   */<a name="line.470"></a>
+<span class="sourceLineNo">471</span>  CompletableFuture&lt;Void&gt; majorCompactRegion(byte[] regionName);<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span>  /**<a name="line.473"></a>
+<span class="sourceLineNo">474</span>   * Major compact a column family within region. Asynchronous operation even if<a name="line.474"></a>
+<span class="sourceLineNo">475</span>   * CompletableFuture.get().<a name="line.475"></a>
+<span class="sourceLineNo">476</span>   * @param regionName egion to major compact<a name="line.476"></a>
+<span class="sourceLineNo">477</span>   * @param columnFamily column family within a region<a name="line.477"></a>
+<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
+<span class="sourceLineNo">479</span>  CompletableFuture&lt;Void&gt; majorCompactRegion(byte[] regionName, byte[] columnFamily);<a name="line.479"></a>
+<span class="sourceLineNo">480</span><a name="line.480"></a>
+<span class="sourceLineNo">481</span>  /**<a name="line.481"></a>
+<span class="sourceLineNo">482</span>   * Compact all regions on the region server.<a name="line.482"></a>
+<span class="sourceLineNo">483</span>   * @param sn the region server name<a name="line.483"></a>
+<span class="sourceLineNo">484</span>   */<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  CompletableFuture&lt;Void&gt; compactRegionServer(ServerName sn);<a name="line.485"></a>
+<span class="sourceLineNo">486</span><a name="line.486"></a>
+<span class="sourceLineNo">487</span>  /**<a name="line.487"></a>
+<span class="sourceLineNo">488</span>   * Compact all regions on the region server.<a name="line.488"></a>
+<span class="sourceLineNo">489</span>   * @param sn the region server name<a name="line.489"></a>
 <span class="sourceLineNo">490</span>   */<a name="line.490"></a>
-<span class="sourceLineNo">491</span>  CompletableFuture&lt;List&lt;QuotaSettings&gt;&gt; getQuota(QuotaFilter filter);<a name="line.491"></a>
+<span class="sourceLineNo">491</span>  CompletableFuture&lt;Void&gt; majorCompactRegionServer(ServerName sn);<a name="line.491"></a>
 <span class="sourceLineNo">492</span><a name="line.492"></a>
 <span class="sourceLineNo">493</span>  /**<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * Add a new replication peer for replicating data to slave cluster<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * @param peerId a short name that identifies the peer<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * @param peerConfig configuration for the replication slave cluster<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   */<a name="line.497"></a>
-<span class="sourceLineNo">498</span>  CompletableFuture&lt;Void&gt; addReplicationPeer(final String peerId,<a name="line.498"></a>
-<span class="sourceLineNo">499</span>      final ReplicationPeerConfig peerConfig);<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>  /**<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   * Remove a peer and stop the replication<a name="line.502"></a>
-<span class="sourceLineNo">503</span>   * @param peerId a short name that identifies the peer<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   */<a name="line.504"></a>
-<span class="sourceLineNo">505</span>  CompletableFuture&lt;Void&gt; removeReplicationPeer(final String peerId);<a name="line.505"></a>
-<span class="sourceLineNo">506</span><a name="line.506"></a>
-<span class="sourceLineNo">507</span>  /**<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   * Restart the replication stream to the specified peer<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   * @param peerId a short name that identifies the peer<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   */<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  CompletableFuture&lt;Void&gt; enableReplicationPeer(final String peerId);<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  /**<a name="line.513"></a>
-<span class="sourceLineNo">514</span>   * Stop the replication stream to the specified peer<a name="line.514"></a>
-<span class="sourceLineNo">515</span>   * @param peerId a short name that identifies the peer<a name="line.515"></a>
-<span class="sourceLineNo">516</span>   */<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  CompletableFuture&lt;Void&gt; disableReplicationPeer(final String peerId);<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  /**<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * Returns the configured ReplicationPeerConfig for the specified peer<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   * @param peerId a short name that identifies the peer<a name="line.521"></a>
-<span class="sourceLineNo">522</span>   * @return ReplicationPeerConfig for the peer wrapped by a {@link CompletableFuture}.<a name="line.522"></a>
-<span class="sourceLineNo">523</span>   */<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  CompletableFuture&lt;ReplicationPeerConfig&gt; getReplicationPeerConfig(final String peerId);<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>  /**<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   * Update the peerConfig for the specified peer<a name="line.527"></a>
-<span class="sourceLineNo">528</span>   * @param peerId a short name that identifies the peer<a name="line.528"></a>
-<span class="sourceLineNo">529</span>   * @param peerConfig new config for the peer<a name="line.529"></a>
-<span class="sourceLineNo">530</span>   */<a name="line.530"></a>
-<span class="sourceLineNo">531</span>  CompletableFuture&lt;Void&gt; updateReplicationPeerConfig(final String peerId,<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      final ReplicationPeerConfig peerConfig);<a name="line.532"></a>
+<span class="sourceLineNo">494</span>   * Merge two regions.<a name="line.494"></a>
+<span class="sourceLineNo">495</span>   * @param nameOfRegionA encoded or full name of region a<a name="line.495"></a>
+<span class="sourceLineNo">496</span>   * @param nameOfRegionB encoded or full name of region b<a name="line.496"></a>
+<span class="sourceLineNo">497</span>   * @param forcible true if do a compulsory merge, otherwise we will only merge two adjacent<a name="line.497"></a>
+<span class="sourceLineNo">498</span>   *          regions<a name="line.498"></a>
+<span class="sourceLineNo">499</span>   */<a name="line.499"></a>
+<span class="sourceLineNo">500</span>  CompletableFuture&lt;Void&gt; mergeRegions(final byte[] nameOfRegionA, final byte[] nameOfRegionB,<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      final boolean forcible);<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>   * Split a table. The method will execute split action for each region in table.<a name="line.504"></a>
+<span class="sourceLineNo">505</span>   * @param tableName table to split<a name="line.505"></a>
+<span class="sourceLineNo">506</span>   */<a name="line.506"></a>
+<span class="sourceLineNo">507</span>  CompletableFuture&lt;Void&gt; split(final TableName tableName);<a name="line.507"></a>
+<span class="sourceLineNo">508</span><a name="line.508"></a>
+<span class="sourceLineNo">509</span>  /**<a name="line.509"></a>
+<span class="sourceLineNo">510</span>   * Split an individual region.<a name="line.510"></a>
+<span class="sourceLineNo">511</span>   * @param regionName region to split<a name="line.511"></a>
+<span class="sourceLineNo">512</span>   */<a name="line.512"></a>
+<span class="sourceLineNo">513</span>  CompletableFuture&lt;Void&gt; splitRegion(final byte[] regionName);<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span>  /**<a name="line.515"></a>
+<span class="sourceLineNo">516</span>   * Split a table.<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   * @param tableName table to split<a name="line.517"></a>
+<span class="sourceLineNo">518</span>   * @param splitPoint the explicit position to split on<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   */<a name="line.519"></a>
+<span class="sourceLineNo">520</span>  CompletableFuture&lt;Void&gt; split(final TableName tableName, final byte[] splitPoint);<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span>  /**<a name="line.522"></a>
+<span class="sourceLineNo">523</span>   * Split an individual region.<a name="line.523"></a>
+<span class="sourceLineNo">524</span>   * @param regionName region to split<a name="line.524"></a>
+<span class="sourceLineNo">525</span>   * @param splitPoint the explicit position to split on<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   */<a name="line.526"></a>
+<span class="sourceLineNo">527</span>  CompletableFuture&lt;Void&gt; splitRegion(final byte[] regionName, final byte[] splitPoint);<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>  /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * @param regionName Encoded or full name of region to assign.<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>  CompletableFuture&lt;Void&gt; assign(final byte[] regionName);<a name="line.532"></a>
 <span class="sourceLineNo">533</span><a name="line.533"></a>
 <span class="sourceLineNo">534</span>  /**<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * Append the replicable table-cf config of the specified peer<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * @param id a short that identifies the cluster<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   * @param tableCfs A map from tableName to column family names<a name="line.537"></a>
-<span class="sourceLineNo">538</span>   */<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  CompletableFuture&lt;Void&gt; appendReplicationPeerTableCFs(String id,<a name="line.539"></a>
-<span class="sourceLineNo">540</span>      Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs);<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span>  /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span>   * Remove some table-cfs from config of the specified peer<a name="line.543"></a>
-<span class="sourceLineNo">544</span>   * @param id a short name that identifies the cluster<a name="line.544"></a>
-<span class="sourceLineNo">545</span>   * @param tableCfs A map from tableName to column family names<a name="line.545"></a>
-<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
-<span class="sourceLineNo">547</span>  CompletableFuture&lt;Void&gt; removeReplicationPeerTableCFs(String id,<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs);<a name="line.548"></a>
-<span class="sourceLineNo">549</span><a name="line.549"></a>
-<span class="sourceLineNo">550</span>  /**<a name="line.550"></a>
-<span class="sourceLineNo">551</span>   * Return a list of replication peers.<a name="line.551"></a>
-<span class="sourceLineNo">552</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.552"></a>
-<span class="sourceLineNo">553</span>   *         {@link CompletableFuture}.<a name="line.553"></a>
-<span class="sourceLineNo">554</span>   */<a name="line.554"></a>
-<span class="sourceLineNo">555</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers();<a name="line.555"></a>
-<span class="sourceLineNo">556</span><a name="line.556"></a>
-<span class="sourceLineNo">557</span>  /**<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * Return a list of replication peers.<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   * @param regex The regular expression to match peer id<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   *         {@link CompletableFuture}.<a name="line.561"></a>
+<span class="sourceLineNo">535</span>   * Unassign a region from current hosting regionserver. Region will then be assigned to a<a name="line.535"></a>
+<span class="sourceLineNo">536</span>   * regionserver chosen at random. Region could be reassigned back to the same server. Use<a name="line.536"></a>
+<span class="sourceLineNo">537</span>   * {@link #move(byte[], byte[])} if you want to control the region movement.<a name="line.537"></a>
+<span class="sourceLineNo">538</span>   * @param regionName Encoded or full name of region to unassign. Will clear any existing<a name="line.538"></a>
+<span class="sourceLineNo">539</span>   *          RegionPlan if one found.<a name="line.539"></a>
+<span class="sourceLineNo">540</span>   * @param force If true, force unassign (Will remove region from regions-in-transition too if<a name="line.540"></a>
+<span class="sourceLineNo">541</span>   *          present. If results in double assignment use hbck -fix to resolve. To be used by<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   *          experts).<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   */<a name="line.543"></a>
+<span class="sourceLineNo">544</span>  CompletableFuture&lt;Void&gt; unassign(final byte[] regionName, final boolean force);<a name="line.544"></a>
+<span class="sourceLineNo">545</span><a name="line.545"></a>
+<span class="sourceLineNo">546</span>  /**<a name="line.546"></a>
+<span class="sourceLineNo">547</span>   * Offline specified region from master's in-memory state. It will not attempt to reassign the<a name="line.547"></a>
+<span class="sourceLineNo">548</span>   * region as in unassign. This API can be used when a region not served by any region server and<a name="line.548"></a>
+<span class="sourceLineNo">549</span>   * still online as per Master's in memory state. If this API is incorrectly used on active region<a name="line.549"></a>
+<span class="sourceLineNo">550</span>   * then master will loose track of that region. This is a special method that should be used by<a name="line.550"></a>
+<span class="sourceLineNo">551</span>   * experts or hbck.<a name="line.551"></a>
+<span class="sourceLineNo">552</span>   * @param regionName Encoded or full name of region to offline<a name="line.552"></a>
+<span class="sourceLineNo">553</span>   */<a name="line.553"></a>
+<span class="sourceLineNo">554</span>  CompletableFuture&lt;Void&gt; offline(final byte[] regionName);<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>  /**<a name="line.556"></a>
+<span class="sourceLineNo">557</span>   * Move the region &lt;code&gt;r&lt;/code&gt; to &lt;code&gt;dest&lt;/code&gt;.<a name="line.557"></a>
+<span class="sourceLineNo">558</span>   * @param regionName Encoded or full name of region to move.<a name="line.558"></a>
+<span class="sourceLineNo">559</span>   * @param destServerName The servername of the destination regionserver. If passed the empty byte<a name="line.559"></a>
+<span class="sourceLineNo">560</span>   *          array we'll assign to a random server. A server name is made of host, port and<a name="line.560"></a>
+<span class="sourceLineNo">561</span>   *          startcode. Here is an example: &lt;code&gt; host187.example.com,60020,1289493121758&lt;/code&gt;<a name="line.561"></a>
 <span class="sourceLineNo">562</span>   */<a name="line.562"></a>
-<span class="sourceLineNo">563</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers(String regex);<a name="line.563"></a>
+<span class="sourceLineNo">563</span>  CompletableFuture&lt;Void&gt; move(final byte[] regionName, final byte[] destServerName);<a name="line.563"></a>
 <span class="sourceLineNo">564</span><a name="line.564"></a>
 <span class="sourceLineNo">565</span>  /**<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   * Return a list of replication peers.<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * @param pattern The compiled regular expression to match peer id<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   *         {@link CompletableFuture}.<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   */<a name="line.570"></a>
-<span class="sourceLineNo">571</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers(Pattern pattern);<a name="line.571"></a>
-<span class="sourceLineNo">572</span><a name="line.572"></a>
-<span class="sourceLineNo">573</span>  /**<a name="line.573"></a>
-<span class="sourceLineNo">574</span>   * Find all table and column families that are replicated from this cluster<a name="line.574"></a>
-<span class="sourceLineNo">575</span>   * @return the replicated table-cfs list of this cluster. The return value will be wrapped by a<a name="line.575"></a>
-<span class="sourceLineNo">576</span>   *         {@link CompletableFuture}.<a name="line.576"></a>
-<span class="sourceLineNo">577</span>   */<a name="line.577"></a>
-<span class="sourceLineNo">578</span>  CompletableFuture&lt;List&lt;TableCFs&gt;&gt; listReplicatedTableCFs();<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>  /**<a name="line.580"></a>
-<span class="sourceLineNo">581</span>   * Take a snapshot for the given table. If the table is enabled, a FLUSH-type snapshot will be<a name="line.581"></a>
-<span class="sourceLineNo">582</span>   * taken. If the table is disabled, an offline snapshot is taken. Snapshots are considered unique<a name="line.582"></a>
-<span class="sourceLineNo">583</span>   * based on &lt;b&gt;the name of the snapshot&lt;/b&gt;. Attempts to take a snapshot with the same name (even<a name="line.583"></a>
-<span class="sourceLineNo">584</span>   * a different type or with different parameters) will fail with a<a name="line.584"></a>
-<span class="sourceLineNo">585</span>   * {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException} indicating the duplicate<a name="line.585"></a>
-<span class="sourceLineNo">586</span>   * naming. Snapshot names follow the same naming constraints as tables in HBase. See<a name="line.586"></a>
-<span class="sourceLineNo">587</span>   * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.587"></a>
-<span class="sourceLineNo">588</span>   * @param snapshotName name of the snapshot to be created<a name="line.588"></a>
-<span class="sourceLineNo">589</span>   * @param tableName name of the table for which snapshot is created<a name="line.589"></a>
-<span class="sourceLineNo">590</span>   */<a name="line.590"></a>
-<span class="sourceLineNo">591</span>  CompletableFuture&lt;Void&gt; snapshot(String snapshotName, TableName tableName);<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>  /**<a name="line.593"></a>
-<span class="sourceLineNo">594</span>   * Create typed snapshot of the table. Snapshots are considered unique based on &lt;b&gt;the name of the<a name="line.594"></a>
-<span class="sourceLineNo">595</span>   * snapshot&lt;/b&gt;. Attempts to take a snapshot with the same name (even a different type or with<a name="line.595"></a>
-<span class="sourceLineNo">596</span>   * different parameters) will fail with a<a name="line.596"></a>
-<span class="sourceLineNo">597</span>   * {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException} indicating the duplicate<a name="line.597"></a>
-<span class="sourceLineNo">598</span>   * naming. Snapshot names follow the same naming constraints as tables in HBase. See<a name="line.598"></a>
-<span class="sourceLineNo">599</span>   * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.599"></a>
-<span class="sourceLineNo">600</span>   * @param snapshotName name to give the snapshot on the filesystem. Must be unique from all other<a name="line.600"></a>
-<span class="sourceLineNo">601</span>   *          snapshots stored on the cluster<a name="line.601"></a>
-<span class="sourceLineNo">602</span>   * @param tableName name of the table to snapshot<a name="line.602"></a>
-<span class="sourceLineNo">603</span>   * @param type type of snapshot to take<a name="line.603"></a>
-<span class="sourceLineNo">604</span>   */<a name="line.604"></a>
-<span class="sourceLineNo">605</span>  CompletableFuture&lt;Void&gt; snapshot(final String snapshotName, final TableName tableName,<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      SnapshotType type);<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>  /**<a name="line.608"></a>
-<span class="sourceLineNo">609</span>   * Take a snapshot and wait for the server to complete that snapshot asynchronously. Only a single<a name="line.609"></a>
-<span class="sourceLineNo">610</span>   * snapshot should be taken at a time for an instance of HBase, or results may be undefined (you<a name="line.610"></a>
-<span class="sourceLineNo">611</span>   * can tell multiple HBase clusters to snapshot at the same time, but only one at a time for a<a name="line.611"></a>
-<span class="sourceLineNo">612</span>   * single cluster). Snapshots are considered unique based on &lt;b&gt;the name of the snapshot&lt;/b&gt;.<a name="line.612"></a>
-<span class="sourceLineNo">613</span>   * Attempts to take a snapshot with the same name (even a different type or with different<a name="line.613"></a>
-<span class="sourceLineNo">614</span>   * parameters) will fail with a {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException}<a name="line.614"></a>
-<span class="sourceLineNo">615</span>   * indicating the duplicate naming. Snapshot names follow the same naming constraints as tables in<a name="line.615"></a>
-<span class="sourceLineNo">616</span>   * HBase. See {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.616"></a>
-<span class="sourceLineNo">617</span>   * You should probably use {@link #snapshot(String, org.apache.hadoop.hbase.TableName)} unless you<a name="line.617"></a>
-<span class="sourceLineNo">618</span>   * are sure about the type of snapshot that you want to take.<a name="line.618"></a>
-<span class="sourceLineNo">619</span>   * @param snapshot snapshot to take<a name="line.619"></a>
-<span class="sourceLineNo">620</span>   */<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  CompletableFuture&lt;Void&gt; snapshot(SnapshotDescription snapshot);<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>  /**<a name="line.623"></a>
-<span class="sourceLineNo">624</span>   * Check the current state of the passed snapshot. There are three possible states:<a name="line.624"></a>
-<span class="sourceLineNo">625</span>   * &lt;ol&gt;<a name="line.625"></a>
-<span class="sourceLineNo">626</span>   * &lt;li&gt;running - returns &lt;tt&gt;false&lt;/tt&gt;&lt;/li&gt;<a name="line.626"></a>
-<span class="sourceLineNo">627</span>   * &lt;li&gt;finished - returns &lt;tt&gt;true&lt;/tt&gt;&lt;/li&gt;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>   * &lt;li&gt;finished with error - throws the exception that caused the snapshot to fail&lt;/li&gt;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>   * &lt;/ol&gt;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>   * The cluster only knows about the most recent snapshot. Therefore, if another snapshot has been<a name="line.630"></a>
-<span class="sourceLineNo">631</span>   * run/started since the snapshot you are checking, you will receive an<a name="line.631"></a>
-<span class="sourceLineNo">632</span>   * {@link org.apache.hadoop.hbase.snapshot.UnknownSnapshotException}.<a name="line.632"></a>
-<span class="sourceLineNo">633</span>   * @param snapshot description of the snapshot to check<a name="line.633"></a>
-<span class="sourceLineNo">634</span>   * @return &lt;tt&gt;true&lt;/tt&gt; if the snapshot is completed, &lt;tt&gt;false&lt;/tt&gt; if the snapshot is still<a name="line.634"></a>
-<span class="sourceLineNo">635</span>   *         running<a name="line.635"></a>
-<span class="sourceLineNo">636</span>   */<a name="line.636"></a>
-<span class="sourceLineNo">637</span>  CompletableFuture&lt;Boolean&gt; isSnapshotFinished(final SnapshotDescription snapshot);<a name="line.637"></a>
-<span class="sourceLineNo">638</span><a name="line.638"></a>
-<span class="sourceLineNo">639</span>  /**<a name="line.639"></a>
-<span class="sourceLineNo">640</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If the<a name="line.640"></a>
-<span class="sourceLineNo">641</span>   * "hbase.snapshot.restore.take.failsafe.snapshot" configuration property is set to true, a<a name="line.641"></a>
-<span class="sourceLineNo">642</span>   * snapshot of the current table is taken before executing the restore operation. In case of<a name="line.642"></a>
-<span class="sourceLineNo">643</span>   * restore failure, the failsafe snapshot will be restored. If the restore completes without<a name="line.643"></a>
-<span class="sourceLineNo">644</span>   * problem the failsafe snapshot is deleted.<a name="line.644"></a>
-<span class="sourceLineNo">645</span>   * @param snapshotName name of the snapshot to restore<a name="line.645"></a>
-<span class="sourceLineNo">646</span>   */<a name="line.646"></a>
-<span class="sourceLineNo">647</span>  CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName);<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>   * Restore the specified snapshot on the original table. (The table must be disabled) If<a name="line.650"></a>
-<span class="sourceLineNo">651</span>   * 'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken before<a name="line.651"></a>
-<span class="sourceLineNo">652</span>   * executing the restore operation. In case of restore failure, the failsafe snapshot will be<a name="line.652"></a>
-<span class="sourceLineNo">653</span>   * restored. If the restore completes without problem the failsafe snapshot is deleted. The<a name="line.653"></a>
-<span class="sourceLineNo">654</span>   * failsafe snapshot name is configurable by using the property<a name="line.654"></a>
-<span class="sourceLineNo">655</span>   * "hbase.snapshot.restore.failsafe.name".<a name="line.655"></a>
-<span class="sourceLineNo">656</span>   * @param snapshotName name of the snapshot to restore<a name="line.656"></a>
-<span class="sourceLineNo">657</span>   * @param takeFailSafeSnapshot true if the failsafe snapshot should be taken<a name="line.657"></a>
-<span class="sourceLineNo">658</span>   */<a name="line.658"></a>
-<span class="sourceLineNo">659</span>  CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName, boolean takeFailSafeSnapshot);<a name="line.659"></a>
-<span class="sourceLineNo">660</span><a name="line.660"></a>
-<span class="sourceLineNo">661</span>  /**<a name="line.661"></a>
-<span class="sourceLineNo">662</span>   * Create a new table by cloning the snapshot content.<a name="line.662"></a>
-<span class="sourceLineNo">663</span>   * @param snapshotName name of the snapshot to be cloned<a name="line.663"></a>
-<span class="sourceLineNo">664</span>   * @param tableName name of the table where the snapshot will be restored<a name="line.664"></a>
-<span class="sourceLineNo">665</span>   */<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  CompletableFuture&lt;Void&gt; cloneSnapshot(final String snapshotName, final TableName tableName);<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>   * List completed snapshots.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   * @return a list of snapshot descriptors for completed snapshots wrapped by a<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   *         {@link CompletableFuture}<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   */<a name="line.672"></a>
-<span class="sourceLineNo">673</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots();<a name="line.673"></a>
-<span class="sourceLineNo">674</span><a name="line.674"></a>
-<span class="sourceLineNo">675</span>  /**<a name="line.675"></a>
-<span class="sourceLineNo">676</span>   * List all the completed snapshots matching the given regular expression.<a name="line.676"></a>
-<span class="sourceLineNo">677</span>   * @param regex The regular expression to match against<a name="line.677"></a>
-<span class="sourceLineNo">678</span>   * @return - returns a List of SnapshotDescription wrapped by a {@link CompletableFuture}<a name="line.678"></a>
-<span class="sourceLineNo">679</span>   */<a name="line.679"></a>
-<span class="sourceLineNo">680</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots(String regex);<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>   * List all the completed snapshots matching the given pattern.<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * @param pattern The compiled regular expression to match against<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   * @return - returns a List of SnapshotDescription wrapped by a {@link CompletableFuture}<a name="line.685"></a>
-<span class="sourceLineNo">686</span>   */<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots(Pattern pattern);<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  /**<a name="line.689"></a>
-<span class="sourceLineNo">690</span>   * List all the completed snapshots matching the given table name regular expression and snapshot<a name="line.690"></a>
-<span class="sourceLineNo">691</span>   * name regular expression.<a name="line.691"></a>
-<span class="sourceLineNo">692</span>   * @param tableNameRegex The table name regular expression to match against<a name="line.692"></a>
-<span class="sourceLineNo">693</span>   * @param snapshotNameRegex The snapshot name regular expression to match against<a name="line.693"></a>
-<span class="sourceLineNo">694</span>   * @return - returns a List of completed SnapshotDescription wrapped by a<a name="line.694"></a>
-<span class="sourceLineNo">695</span>   *         {@link CompletableFuture}<a name="line.695"></a>
-<span class="sourceLineNo">696</span>   */<a name="line.696"></a>
-<span class="sourceLineNo">697</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listTableSnapshots(String tableNameRegex,<a name="line.697"></a>
-<span class="sourceLineNo">698</span>      String snapshotNameRegex);<a name="line.698"></a>
-<span class="sourceLineNo">699</span><a name="line.699"></a>
-<span class="sourceLineNo">700</span>  /**<a name="line.700"></a>
-<span class="sourceLineNo">701</span>   * List all the completed snapshots matching the given table name regular expression and snapshot<a name="line.701"></a>
-<span class="sourceLineNo">702</span>   * name regular expression.<a name="line.702"></a>
-<span class="sourceLineNo">703</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.703"></a>
-<span class="sourceLineNo">704</span>   * @param snapshotNamePattern The compiled snapshot name regular expression to match against<a name="line.704"></a>
-<span class="sourceLineNo">705</span>   * @return - returns a List of completed SnapshotDescription wrapped by a<a name="line.705"></a>
-<span class="sourceLineNo">706</span>   *         {@link CompletableFuture}<a name="line.706"></a>
-<span class="sourceLineNo">707</span>   */<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listTableSnapshots(Pattern tableNamePattern,<a name="line.708"></a>
-<span class="sourceLineNo">709</span>      Pattern snapshotNamePattern);<a name="line.709"></a>
-<span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span>  /**<a name="line.711"></a>
-<span class="sourceLineNo">712</span>   * Delete an existing snapshot.<a name="line.712"></a>
-<span class="sourceLineNo">713</span>   * @param snapshotName name of the snapshot<a name="line.713"></a>
-<span class="sourceLineNo">714</span>   */<a name="line.714"></a>
-<span class="sourceLineNo">715</span>  CompletableFuture&lt;Void&gt; deleteSnapshot(String snapshotName);<a name="line.715"></a>
-<span class="sourceLineNo">716</span><a name="line.716"></a>
-<span class="sourceLineNo">717</span>  /**<a name="line.717"></a>
-<span class="sourceLineNo">718</span>   * Delete existing snapshots whose names match the pattern passed.<a name="line.718"></a>
-<span class="sourceLineNo">719</span>   * @param regex The regular expression to match against<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   */<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  CompletableFuture&lt;Void&gt; deleteSnapshots(String regex);<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>   * Delete existing snapshots whose names match the pattern passed.<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @param pattern pattern for names of the snapshot to match<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   */<a name="line.726"></a>
-<span class="sourceLineNo">727</span>  CompletableFuture&lt;Void&gt; deleteSnapshots(Pattern pattern);<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>   * Delete all existing snapshots matching the given table name regular expression and snapshot<a name="line.730"></a>
-<span class="sourceLineNo">731</span>   * name regular expression.<a name="line.731"></a>
-<span class="sourceLineNo">732</span>   * @param tableNameRegex The table name regular expression to match against<a name="line.732"></a>
-<span class="sourceLineNo">733</span>   * @param snapshotNameRegex The snapshot name regular expression to match against<a name="line.733"></a>
-<span class="sourceLineNo">734</span>   */<a name="line.734"></a>
-<span class="sourceLineNo">735</span>  CompletableFuture&lt;Void&gt; deleteTableSnapshots(String tableNameRegex, String snapshotNameRegex);<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>   * Delete all existing snapshots matching the given table name regular expression and snapshot<a name="line.738"></a>
-<span class="sourceLineNo">739</span>   * name regular expression.<a name="line.739"></a>
-<span class="sourceLineNo">740</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.740"></a>
-<span class="sourceLineNo">741</span>   * @param snapshotNamePattern The compiled snapshot name regular expression to match against<a name="line.741"></a>
-<span class="sourceLineNo">742</span>   */<a name="line.742"></a>
-<span class="sourceLineNo">743</span>  CompletableFuture&lt;Void&gt; deleteTableSnapshots(Pattern tableNamePattern,<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      Pattern snapshotNamePattern);<a name="line.744"></a>
+<span class="sourceLineNo">566</span>   * Apply the new quota settings.<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   * @param quota the quota settings<a name="line.567"></a>
+<span class="sourceLineNo">568</span>   */<a name="line.568"></a>
+<span class="sourceLineNo">569</span>  CompletableFuture&lt;Void&gt; setQuota(final QuotaSettings quota);<a name="line.569"></a>
+<span class="sourceLineNo">570</span><a name="line.570"></a>
+<span class="sourceLineNo">571</span>  /**<a name="line.571"></a>
+<span class="sourceLineNo">572</span>   * List the quotas based on the filter.<a name="line.572"></a>
+<span class="sourceLineNo">573</span>   * @param filter the quota settings filter<a name="line.573"></a>
+<span class="sourceLineNo">574</span>   * @return the QuotaSetting list, which wrapped by a CompletableFuture.<a name="line.574"></a>
+<span class="sourceLineNo">575</span>   */<a name="line.575"></a>
+<span class="sourceLineNo">576</span>  CompletableFuture&lt;List&lt;QuotaSettings&gt;&gt; getQuota(QuotaFilter filter);<a name="line.576"></a>
+<span class="sourceLineNo">577</span><a name="line.577"></a>
+<span class="sourceLineNo">578</span>  /**<a name="line.578"></a>
+<span class="sourceLineNo">579</span>   * Add a new replication peer for replicating data to slave cluster<a name="line.579"></a>
+<span class="sourceLineNo">580</span>   * @param peerId a short name that identifies the peer<a name="line.580"></a>
+<span class="sourceLineNo">581</span>   * @param peerConfig configuration for the replication slave cluster<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   */<a name="line.582"></a>
+<span class="sourceLineNo">583</span>  CompletableFuture&lt;Void&gt; addReplicationPeer(final String peerId,<a name="line.583"></a>
+<span class="sourceLineNo">584</span>      final ReplicationPeerConfig peerConfig);<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>  /**<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   * Remove a peer and stop the replication<a name="line.587"></a>
+<span class="sourceLineNo">588</span>   * @param peerId a short name that identifies the peer<a name="line.588"></a>
+<span class="sourceLineNo">589</span>   */<a name="line.589"></a>
+<span class="sourceLineNo">590</span>  CompletableFuture&lt;Void&gt; removeReplicationPeer(final String peerId);<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>  /**<a name="line.592"></a>
+<span class="sourceLineNo">593</span>   * Restart the replication stream to the specified peer<a name="line.593"></a>
+<span class="sourceLineNo">594</span>   * @param peerId a short name that identifies the peer<a name="line.594"></a>
+<span class="sourceLineNo">595</span>   */<a name="line.595"></a>
+<span class="sourceLineNo">596</span>  CompletableFuture&lt;Void&gt; enableReplicationPeer(final String peerId);<a name="line.596"></a>
+<span class="sourceLineNo">597</span><a name="line.597"></a>
+<span class="sourceLineNo">598</span>  /**<a name="line.598"></a>
+<span class="sourceLineNo">599</span>   * Stop the replication stream to the specified peer<a name="line.599"></a>
+<span class="sourceLineNo">600</span>   * @param peerId a short name that identifies the peer<a name="line.600"></a>
+<span class="sourceLineNo">601</span>   */<a name="line.601"></a>
+<span class="sourceLineNo">602</span>  CompletableFuture&lt;Void&gt; disableReplicationPeer(final String peerId);<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>   * Returns the configured ReplicationPeerConfig for the specified peer<a name="line.605"></a>
+<span class="sourceLineNo">606</span>   * @param peerId a short name that identifies the peer<a name="line.606"></a>
+<span class="sourceLineNo">607</span>   * @return ReplicationPeerConfig for the peer wrapped by a {@link CompletableFuture}.<a name="line.607"></a>
+<span class="sourceLineNo">608</span>   */<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  CompletableFuture&lt;ReplicationPeerConfig&gt; getReplicationPeerConfig(final String peerId);<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>  /**<a name="line.611"></a>
+<span class="sourceLineNo">612</span>   * Update the peerConfig for the specified peer<a name="line.612"></a>
+<span class="sourceLineNo">613</span>   * @param peerId a short name that identifies the peer<a name="line.613"></a>
+<span class="sourceLineNo">614</span>   * @param peerConfig new config for the peer<a name="line.614"></a>
+<span class="sourceLineNo">615</span>   */<a name="line.615"></a>
+<span class="sourceLineNo">616</span>  CompletableFuture&lt;Void&gt; updateReplicationPeerConfig(final String peerId,<a name="line.616"></a>
+<span class="sourceLineNo">617</span>      final ReplicationPeerConfig peerConfig);<a name="line.617"></a>
+<span class="sourceLineNo">618</span><a name="line.618"></a>
+<span class="sourceLineNo">619</span>  /**<a name="line.619"></a>
+<span class="sourceLineNo">620</span>   * Append the replicable table-cf config of the specified peer<a name="line.620"></a>
+<span class="sourceLineNo">621</span>   * @param id a short that identifies the cluster<a name="line.621"></a>
+<span class="sourceLineNo">622</span>   * @param tableCfs A map from tableName to column family names<a name="line.622"></a>
+<span class="sourceLineNo">623</span>   */<a name="line.623"></a>
+<span class="sourceLineNo">624</span>  CompletableFuture&lt;Void&gt; appendReplicationPeerTableCFs(String id,<a name="line.624"></a>
+<span class="sourceLineNo">625</span>      Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs);<a name="line.625"></a>
+<span class="sourceLineNo">626</span><a name="line.626"></a>
+<span class="sourceLineNo">627</span>  /**<a name="line.627"></a>
+<span class="sourceLineNo">628</span>   * Remove some table-cfs from config of the specified peer<a name="line.628"></a>
+<span class="sourceLineNo">629</span>   * @param id a short name that identifies the cluster<a name="line.629"></a>
+<span class="sourceLineNo">630</span>   * @param tableCfs A map from tableName to column family names<a name="line.630"></a>
+<span class="sourceLineNo">631</span>   */<a name="line.631"></a>
+<span class="sourceLineNo">632</span>  CompletableFuture&lt;Void&gt; removeReplicationPeerTableCFs(String id,<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs);<a name="line.633"></a>
+<span class="sourceLineNo">634</span><a name="line.634"></a>
+<span class="sourceLineNo">635</span>  /**<a name="line.635"></a>
+<span class="sourceLineNo">636</span>   * Return a list of replication peers.<a name="line.636"></a>
+<span class="sourceLineNo">637</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.637"></a>
+<span class="sourceLineNo">638</span>   *         {@link CompletableFuture}.<a name="line.638"></a>
+<span class="sourceLineNo">639</span>   */<a name="line.639"></a>
+<span class="sourceLineNo">640</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers();<a name="line.640"></a>
+<span class="sourceLineNo">641</span><a name="line.641"></a>
+<span class="sourceLineNo">642</span>  /**<a name="line.642"></a>
+<span class="sourceLineNo">643</span>   * Return a list of replication peers.<a name="line.643"></a>
+<span class="sourceLineNo">644</span>   * @param regex The regular expression to match peer id<a name="line.644"></a>
+<span class="sourceLineNo">645</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.645"></a>
+<span class="sourceLineNo">646</span>   *         {@link CompletableFuture}.<a name="line.646"></a>
+<span class="sourceLineNo">647</span>   */<a name="line.647"></a>
+<span class="sourceLineNo">648</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers(String regex);<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>   * Return a list of replication peers.<a name="line.651"></a>
+<span class="sourceLineNo">652</span>   * @param pattern The compiled regular expression to match peer id<a name="line.652"></a>
+<span class="sourceLineNo">653</span>   * @return a list of replication peers description. The return value will be wrapped by a<a name="line.653"></a>
+<span class="sourceLineNo">654</span>   *         {@link CompletableFuture}.<a name="line.654"></a>
+<span class="sourceLineNo">655</span>   */<a name="line.655"></a>
+<span class="sourceLineNo">656</span>  CompletableFuture&lt;List&lt;ReplicationPeerDescription&gt;&gt; listReplicationPeers(Pattern pattern);<a name="line.656"></a>
+<span class="sourceLineNo">657</span><a name="line.657"></a>
+<span class="sourceLineNo">658</span>  /**<a name="line.658"></a>
+<span class="sourceLineNo">659</span>   * Find all table and column families that are replicated from this cluster<a name="line.659"></a>
+<span class="sourceLineNo">660</span>   * @return the replicated table-cfs list of this cluster. The return value will be wrapped by a<a name="line.660"></a>
+<span class="sourceLineNo">661</span>   *         {@link CompletableFuture}.<a name="line.661"></a>
+<span class="sourceLineNo">662</span>   */<a name="line.662"></a>
+<span class="sourceLineNo">663</span>  CompletableFuture&lt;List&lt;TableCFs&gt;&gt; listReplicatedTableCFs();<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>   * Take a snapshot for the given table. If the table is enabled, a FLUSH-type snapshot will be<a name="line.666"></a>
+<span class="sourceLineNo">667</span>   * taken. If the table is disabled, an offline snapshot is taken. Snapshots are considered unique<a name="line.667"></a>
+<span class="sourceLineNo">668</span>   * based on &lt;b&gt;the name of the snapshot&lt;/b&gt;. Attempts to take a snapshot with the same name (even<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * a different type or with different parameters) will fail with a<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException} indicating the duplicate<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   * naming. Snapshot names follow the same naming constraints as tables in HBase. See<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param snapshotName name of the snapshot to be created<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @param tableName name of the table for which snapshot is created<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
+<span class="sourceLineNo">676</span>  CompletableFuture&lt;Void&gt; snapshot(String snapshotName, TableName tableName);<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>   * Create typed snapshot of the table. Snapshots are considered unique based on &lt;b&gt;the name of the<a name="line.679"></a>
+<span class="sourceLineNo">680</span>   * snapshot&lt;/b&gt;. Attempts to take a snapshot with the same name (even a different type or with<a name="line.680"></a>
+<span class="sourceLineNo">681</span>   * different parameters) will fail with a<a name="line.681"></a>
+<span class="sourceLineNo">682</span>   * {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException} indicating the duplicate<a name="line.682"></a>
+<span class="sourceLineNo">683</span>   * naming. Snapshot names follow the same naming constraints as tables in HBase. See<a name="line.683"></a>
+<span class="sourceLineNo">684</span>   * {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.684"></a>
+<span class="sourceLineNo">685</span>   * @param snapshotName name to give the snapshot on the filesystem. Must be unique from all other<a name="line.685"></a>
+<span class="sourceLineNo">686</span>   *          snapshots stored on the cluster<a name="line.686"></a>
+<span class="sourceLineNo">687</span>   * @param tableName name of the table to snapshot<a name="line.687"></a>
+<span class="sourceLineNo">688</span>   * @param type type of snapshot to take<a name="line.688"></a>
+<span class="sourceLineNo">689</span>   */<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  CompletableFuture&lt;Void&gt; snapshot(final String snapshotName, final TableName tableName,<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      SnapshotType type);<a name="line.691"></a>
+<span class="sourceLineNo">692</span><a name="line.692"></a>
+<span class="sourceLineNo">693</span>  /**<a name="line.693"></a>
+<span class="sourceLineNo">694</span>   * Take a snapshot and wait for the server to complete that snapshot asynchronously. Only a single<a name="line.694"></a>
+<span class="sourceLineNo">695</span>   * snapshot should be taken at a time for an instance of HBase, or results may be undefined (you<a name="line.695"></a>
+<span class="sourceLineNo">696</span>   * can tell multiple HBase clusters to snapshot at the same time, but only one at a time for a<a name="line.696"></a>
+<span class="sourceLineNo">697</span>   * single cluster). Snapshots are considered unique based on &lt;b&gt;the name of the snapshot&lt;/b&gt;.<a name="line.697"></a>
+<span class="sourceLineNo">698</span>   * Attempts to take a snapshot with the same name (even a different type or with different<a name="line.698"></a>
+<span class="sourceLineNo">699</span>   * parameters) will fail with a {@link org.apache.hadoop.hbase.snapshot.SnapshotCreationException}<a name="line.699"></a>
+<span class="sourceLineNo">700</span>   * indicating the duplicate naming. Snapshot names follow the same naming constraints as tables in<a name="line.700"></a>
+<span class="sourceLineNo">701</span>   * HBase. See {@link org.apache.hadoop.hbase.TableName#isLegalFullyQualifiedTableName(byte[])}.<a name="line.701"></a>
+<span class="sourceLineNo">702</span>   * You should probably use {@link #snapshot(String, org.apache.hadoop.hbase.TableName)} unless you<a name="line.702"></a>
+<span class="sourceLineNo">703</span>   * are sure about the type of snapshot that you want to take.<a name="line.703"></a>
+<span class="sourceLineNo">704</span>   * @param snapshot snapshot to take<a name="line.704"></a>
+<span class="sourceLineNo">705</span>   */<a name="line.705"></a>
+<span class="sourceLineNo">706</span>  CompletableFuture&lt;Void&gt; snapshot(SnapshotDescription snapshot);<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>  /**<a name="line.708"></a>
+<span class="sourceLineNo">709</span>   * Check the current state of the passed snapshot. There are three possible states:<a name="line.709"></a>
+<span class="sourceLineNo">710</span>   * &lt;ol&gt;<a name="line.710"></a>
+<span class="sourceLineNo">711</span>   * &lt;li&gt;running - returns &lt;tt&gt;false&lt;/tt&gt;&lt;/li&gt;<a name="line.711"></a>
+<span class="sourceLineNo">712</span>   * &lt;li&gt;finished - returns &lt;tt&gt;true&lt;/tt&gt;&lt;/li&gt;<a name="line.712"></a>
+<span class="sourceLineNo">713</span>   * &lt;li&gt;finished with error - throws the exception that caused the snapshot to fail&lt;/li&gt;<a name="line.713"></a>
+<span class="sourceLineNo">714</span>   * &lt;/ol&gt;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>   * The cluster only knows about the most recent snapshot. Therefore, if another snapshot has been<a name="line.715"></a>
+<span class="sourceLineNo">716</span>   * run/started since the snapshot you are checking, you will receive an<a name="line.716"></a>
+<span class="sourceLineNo">717</span>   * {@link org.apache.hadoop.hbase.snapshot.UnknownSnapshotException}.<a name="line.717"></a>
+<span class="sourceLineNo">718</span>   * @param snapshot description of the snapshot to check<a name="line.718"></a>
+<span class="sourceLineNo">719</span>   * @return &lt;tt&gt;true&lt;/tt&gt; if the snapshot is completed, &lt;tt&gt;false&lt;/tt&gt; if the snapshot is still<a name="line.719"></a>
+<span class="sourceLineNo">720</span>   *         running<a name="line.720"></a>
+<span class="sourceLineNo">721</span>   */<a name="line.721"></a>
+<span class="sourceLineNo">722</span>  CompletableFuture&lt;Boolean&gt; isSnapshotFinished(final SnapshotDescription snapshot);<a name="line.722"></a>
+<span class="sourceLineNo">723</span><a name="line.723"></a>
+<span class="sourceLineNo">724</span>  /**<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If the<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * "hbase.snapshot.restore.take.failsafe.snapshot" configuration property is set to true, a<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * snapshot of the current table is taken before executing the restore operation. In case of<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * restore failure, the failsafe snapshot will be restored. If the restore completes without<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   * problem the failsafe snapshot is deleted.<a name="line.729"></a>
+<span class="sourceLineNo">730</span>   * @param snapshotName name of the snapshot to restore<a name="line.730"></a>
+<span class="sourceLineNo">731</span>   */<a name="line.731"></a>
+<span class="sourceLineNo">732</span>  CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName);<a name="line.732"></a>
+<span class="sourceLineNo">733</span><a name="line.733"></a>
+<span class="sourceLineNo">734</span>  /**<a name="line.734"></a>
+<span class="sourceLineNo">735</span>   * Restore the specified snapshot on the original table. (The table must be disabled) If<a name="line.735"></a>
+<span class="sourceLineNo">736</span>   * 'takeFailSafeSnapshot' is set to true, a snapshot of the current table is taken before<a name="line.736"></a>
+<span class="sourceLineNo">737</span>   * executing the restore operation. In case of restore failure, the failsafe snapshot will be<a name="line.737"></a>
+<span class="sourceLineNo">738</span>   * restored. If the restore completes without problem the failsafe snapshot is deleted. The<a name="line.738"></a>
+<span class="sourceLineNo">739</span>   * failsafe snapshot name is configurable by using the property<a name="line.739"></a>
+<span class="sourceLineNo">740</span>   * "hbase.snapshot.restore.failsafe.name".<a name="line.740"></a>
+<span class="sourceLineNo">741</span>   * @param snapshotName name of the snapshot to restore<a name="line.741"></a>
+<span class="sourceLineNo">742</span>   * @param takeFailSafeSnapshot true if the failsafe snapshot should be taken<a name="line.742"></a>
+<span class="sourceLineNo">743</span>   */<a name="line.743"></a>
+<span class="sourceLineNo">744</span>  CompletableFuture&lt;Void&gt; restoreSnapshot(String snapshotName, boolean takeFailSafeSnapshot);<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>   * Execute a distributed procedure on a cluster.<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @param signature A distributed procedure is uniquely identified by its signature (default the<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   *          root ZK node name of the procedure).<a name="line.749"></a>
-<span class="sourceLineNo">750</span>   * @param instance The instance name of the procedure. For some procedures, this parameter is<a name="line.750"></a>
-<span class="sourceLineNo">751</span>   *          optional.<a name="line.751"></a>
-<span class="sourceLineNo">752</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.752"></a>
-<span class="sourceLineNo">753</span>   */<a name="line.753"></a>
-<span class="sourceLineNo">754</span>  CompletableFuture&lt;Void&gt; execProcedure(String signature, String instance,<a name="line.754"></a>
-<span class="sourceLineNo">755</span>      Map&lt;String, String&gt; props);<a name="line.755"></a>
-<span class="sourceLineNo">756</span><a name="line.756"></a>
-<span class="sourceLineNo">757</span>  /**<a name="line.757"></a>
-<span class="sourceLineNo">758</span>   * Execute a distributed procedure on a cluster.<a name="line.758"></a>
-<span class="sourceLineNo">759</span>   * @param signature A distributed procedure is uniquely identified by its signature (default the<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   *          root ZK node name of the procedure).<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   * @param instance The instance name of the procedure. For some procedures, this parameter is<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   *          optional.<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.763"></a>
-<span class="sourceLineNo">764</span>   * @return data returned after procedure execution. null if no return data.<a name="line.764"></a>
-<span class="sourceLineNo">765</span>   */<a name="line.765"></a>
-<span class="sourceLineNo">766</span>  CompletableFuture&lt;byte[]&gt; execProcedureWithRet(String signature, String instance,<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      Map&lt;String, String&gt; props);<a name="line.767"></a>
-<span class="sourceLineNo">768</span><a name="line.768"></a>
-<span class="sourceLineNo">769</span>  /**<a name="line.769"></a>
-<span class="sourceLineNo">770</span>   * Check the current state of the specified procedure. There are three possible states:<a name="line.770"></a>
-<span class="sourceLineNo">771</span>   * &lt;ol&gt;<a name="line.771"></a>
-<span class="sourceLineNo">772</span>   * &lt;li&gt;running - returns &lt;tt&gt;false&lt;/tt&gt;&lt;/li&gt;<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * &lt;li&gt;finished - returns &lt;tt&gt;true&lt;/tt&gt;&lt;/li&gt;<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * &lt;li&gt;finished with error - throws the exception that caused the procedure to fail&lt;/li&gt;<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * &lt;/ol&gt;<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @param signature The signature that uniquely identifies a procedure<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   * @param instance The instance name of the procedure<a name="line.777"></a>
-<span class="sourceLineNo">778</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.778"></a>
-<span class="sourceLineNo">779</span>   * @return true if the specified procedure is finished successfully, false if it is still running.<a name="line.779"></a>
-<span class="sourceLineNo">780</span>   *         The value is vrapped by {@link CompletableFuture}<a name="line.780"></a>
+<span class="sourceLineNo">747</span>   * Create a new table by cloning the snapshot content.<a name="line.747"></a>
+<span class="sourceLineNo">748</span>   * @param snapshotName name of the snapshot to be cloned<a name="line.748"></a>
+<span class="sourceLineNo">749</span>   * @param tableName name of the table where the snapshot will be restored<a name="line.749"></a>
+<span class="sourceLineNo">750</span>   */<a name="line.750"></a>
+<span class="sourceLineNo">751</span>  CompletableFuture&lt;Void&gt; cloneSnapshot(final String snapshotName, final TableName tableName);<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>   * List completed snapshots.<a name="line.754"></a>
+<span class="sourceLineNo">755</span>   * @return a list of snapshot descriptors for completed snapshots wrapped by a<a name="line.755"></a>
+<span class="sourceLineNo">756</span>   *         {@link CompletableFuture}<a name="line.756"></a>
+<span class="sourceLineNo">757</span>   */<a name="line.757"></a>
+<span class="sourceLineNo">758</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots();<a name="line.758"></a>
+<span class="sourceLineNo">759</span><a name="line.759"></a>
+<span class="sourceLineNo">760</span>  /**<a name="line.760"></a>
+<span class="sourceLineNo">761</span>   * List all the completed snapshots matching the given regular expression.<a name="line.761"></a>
+<span class="sourceLineNo">762</span>   * @param regex The regular expression to match against<a name="line.762"></a>
+<span class="sourceLineNo">763</span>   * @return - returns a List of SnapshotDescription wrapped by a {@link CompletableFuture}<a name="line.763"></a>
+<span class="sourceLineNo">764</span>   */<a name="line.764"></a>
+<span class="sourceLineNo">765</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots(String regex);<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>   * List all the completed snapshots matching the given pattern.<a name="line.768"></a>
+<span class="sourceLineNo">769</span>   * @param pattern The compiled regular expression to match against<a name="line.769"></a>
+<span class="sourceLineNo">770</span>   * @return - returns a List of SnapshotDescription wrapped by a {@link CompletableFuture}<a name="line.770"></a>
+<span class="sourceLineNo">771</span>   */<a name="line.771"></a>
+<span class="sourceLineNo">772</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listSnapshots(Pattern pattern);<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>   * List all the completed snapshots matching the given table name regular expression and snapshot<a name="line.775"></a>
+<span class="sourceLineNo">776</span>   * name regular expression.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * @param tableNameRegex The table name regular expression to match against<a name="line.777"></a>
+<span class="sourceLineNo">778</span>   * @param snapshotNameRegex The snapshot name regular expression to match against<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   * @return - returns a List of completed SnapshotDescription wrapped by a<a name="line.779"></a>
+<span class="sourceLineNo">780</span>   *         {@link CompletableFuture}<a name="line.780"></a>
 <span class="sourceLineNo">781</span>   */<a name="line.781"></a>
-<span class="sourceLineNo">782</span>  CompletableFuture&lt;Boolean&gt; isProcedureFinished(String signature, String instance,<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      Map&lt;String, String&gt; props);<a name="line.783"></a>
+<span class="sourceLineNo">782</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listTableSnapshots(String tableNameRegex,<a name="line.782"></a>
+<span class="sourceLineNo">783</span>      String snapshotNameRegex);<a name="line.783"></a>
 <span class="sourceLineNo">784</span><a name="line.784"></a>
 <span class="sourceLineNo">785</span>  /**<a name="line.785"></a>
-<span class="sourceLineNo">786</span>   * abort a procedure<a name="line.786"></a>
-<span class="sourceLineNo">787</span>   * @param procId ID of the procedure to abort<a name="line.787"></a>
-<span class="sourceLineNo">788</span>   * @param mayInterruptIfRunning if the proc completed at least one step, should it be aborted?<a name="line.788"></a>
-<span class="sourceLineNo">789</span>   * @return true if aborted, false if procedure already completed or does not exist. the value is<a name="line.789"></a>
-<span class="sourceLineNo">790</span>   *         wrapped by {@link CompletableFuture}<a name="line.790"></a>
-<span class="sourceLineNo">791</span>   */<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  CompletableFuture&lt;Boolean&gt; abortProcedure(long procId, boolean mayInterruptIfRunning);<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>   * List procedures<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   * @return procedure list wrapped by {@link CompletableFuture}<a name="line.796"></a>
-<span class="sourceLineNo">797</span>   */<a name="line.797"></a>
-<span class="sourceLineNo">798</span>  CompletableFuture&lt;ProcedureInfo[]&gt; listProcedures();<a name="line.798"></a>
-<span class="sourceLineNo">799</span>}<a name="line.799"></a>
+<span class="sourceLineNo">786</span>   * List all the completed snapshots matching the given table name regular expression and snapshot<a name="line.786"></a>
+<span class="sourceLineNo">787</span>   * name regular expression.<a name="line.787"></a>
+<span class="sourceLineNo">788</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.788"></a>
+<span class="sourceLineNo">789</span>   * @param snapshotNamePattern The compiled snapshot name regular expression to match against<a name="line.789"></a>
+<span class="sourceLineNo">790</span>   * @return - returns a List of completed SnapshotDescription wrapped by a<a name="line.790"></a>
+<span class="sourceLineNo">791</span>   *         {@link CompletableFuture}<a name="line.791"></a>
+<span class="sourceLineNo">792</span>   */<a name="line.792"></a>
+<span class="sourceLineNo">793</span>  CompletableFuture&lt;List&lt;SnapshotDescription&gt;&gt; listTableSnapshots(Pattern tableNamePattern,<a name="line.793"></a>
+<span class="sourceLineNo">794</span>      Pattern snapshotNamePattern);<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>   * Delete an existing snapshot.<a name="line.797"></a>
+<span class="sourceLineNo">798</span>   * @param snapshotName name of the snapshot<a name="line.798"></a>
+<span class="sourceLineNo">799</span>   */<a name="line.799"></a>
+<span class="sourceLineNo">800</span>  CompletableFuture&lt;Void&gt; deleteSnapshot(String snapshotName);<a name="line.800"></a>
+<span class="sourceLineNo">801</span><a name="line.801"></a>
+<span class="sourceLineNo">802</span>  /**<a name="line.802"></a>
+<span class="sourceLineNo">803</span>   * Delete existing snapshots whose names match the pattern passed.<a name="line.803"></a>
+<span class="sourceLineNo">804</span>   * @param regex The regular expression to match against<a name="line.804"></a>
+<span class="sourceLineNo">805</span>   */<a name="line.805"></a>
+<span class="sourceLineNo">806</span>  CompletableFuture&lt;Void&gt; deleteSnapshots(String regex);<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>   * Delete existing snapshots whose names match the pattern passed.<a name="line.809"></a>
+<span class="sourceLineNo">810</span>   * @param pattern pattern for names of the snapshot to match<a name="line.810"></a>
+<span class="sourceLineNo">811</span>   */<a name="line.811"></a>
+<span class="sourceLineNo">812</span>  CompletableFuture&lt;Void&gt; deleteSnapshots(Pattern pattern);<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>   * Delete all existing snapshots matching the given table name regular expression and snapshot<a name="line.815"></a>
+<span class="sourceLineNo">816</span>   * name regular expression.<a name="line.816"></a>
+<span class="sourceLineNo">817</span>   * @param tableNameRegex The table name regular expression to match against<a name="line.817"></a>
+<span class="sourceLineNo">818</span>   * @param snapshotNameRegex The snapshot name regular expression to match against<a name="line.818"></a>
+<span class="sourceLineNo">819</span>   */<a name="line.819"></a>
+<span class="sourceLineNo">820</span>  CompletableFuture&lt;Void&gt; deleteTableSnapshots(String tableNameRegex, String snapshotNameRegex);<a name="line.820"></a>
+<span class="sourceLineNo">821</span><a name="line.821"></a>
+<span class="sourceLineNo">822</span>  /**<a name="line.822"></a>
+<span class="sourceLineNo">823</span>   * Delete all existing snapshots matching the given table name regular expression and snapshot<a name="line.823"></a>
+<span class="sourceLineNo">824</span>   * name regular expression.<a name="line.824"></a>
+<span class="sourceLineNo">825</span>   * @param tableNamePattern The compiled table name regular expression to match against<a name="line.825"></a>
+<span class="sourceLineNo">826</span>   * @param snapshotNamePattern The compiled snapshot name regular expression to match against<a name="line.826"></a>
+<span class="sourceLineNo">827</span>   */<a name="line.827"></a>
+<span class="sourceLineNo">828</span>  CompletableFuture&lt;Void&gt; deleteTableSnapshots(Pattern tableNamePattern,<a name="line.828"></a>
+<span class="sourceLineNo">829</span>      Pattern snapshotNamePattern);<a name="line.829"></a>
+<span class="sourceLineNo">830</span><a name="line.830"></a>
+<span class="sourceLineNo">831</span>  /**<a name="line.831"></a>
+<span class="sourceLineNo">832</span>   * Execute a distributed procedure on a cluster.<a name="line.832"></a>
+<span class="sourceLineNo">833</span>   * @param signature A distributed procedure is uniquely identified by its signature (default the<a name="line.833"></a>
+<span class="sourceLineNo">834</span>   *          root ZK node name of the procedure).<a name="line.834"></a>
+<span class="sourceLineNo">835</span>   * @param instance The instance name of the procedure. For some procedures, this parameter is<a name="line.835"></a>
+<span class="sourceLineNo">836</span>   *          optional.<a name="line.836"></a>
+<span class="sourceLineNo">837</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.837"></a>
+<span class="sourceLineNo">838</span>   */<a name="line.838"></a>
+<span class="sourceLineNo">839</span>  CompletableFuture&lt;Void&gt; execProcedure(String signature, String instance,<a name="line.839"></a>
+<span class="sourceLineNo">840</span>      Map&lt;String, String&gt; props);<a name="line.840"></a>
+<span class="sourceLineNo">841</span><a name="line.841"></a>
+<span class="sourceLineNo">842</span>  /**<a name="line.842"></a>
+<span class="sourceLineNo">843</span>   * Execute a distributed procedure on a cluster.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>   * @param signature A distributed procedure is uniquely identified by its signature (default the<a name="line.844"></a>
+<span class="sourceLineNo">845</span>   *          root ZK node name of the procedure).<a name="line.845"></a>
+<span class="sourceLineNo">846</span>   * @param instance The instance name of the procedure. For some procedures, this parameter is<a name="line.846"></a>
+<span class="sourceLineNo">847</span>   *          optional.<a name="line.847"></a>
+<span class="sourceLineNo">848</span>   * @param props Property/Value pairs of properties passing to the procedure<a name="line.848"></a>
+<span class="sourceLineNo">849</span>   * @return data returned after procedure execution. null if no return data.<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   */<a name="line.850"></a>
+<span class="sourceLineNo">851</span>  CompletableFuture&lt;byte[]&gt; execProcedureWithRet(String signature, String instance,<a name="line.851"></a>
+<span class="sourceLineNo">852</span>      Map&lt;String, String&gt; props);<a name="line.852"></a>
+<span class="sourceLineNo">853</span><a name="line.853"></a>
+<span class="sourceLineNo">854</span>  /**<a name="line.854"></a>
+<span class="sourceLineNo">855</span>   * Check the current state of the specified procedure. There are three possible states:<a name="line.855"></a>
+<span class="s

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/class-use/CompactType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/CompactType.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/CompactType.html
index 32682a3..0fb40ae 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/CompactType.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/CompactType.html
@@ -127,6 +127,15 @@ the order they are declared.</div>
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-boolean-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+       byte[]&nbsp;columnFamily,
+       boolean&nbsp;major,
+       <a href="../../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
+<div class="block">Compact column family of a table, Asynchronous operation even if CompletableFuture.get()</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-boolean-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        byte[]&nbsp;columnFamily,
@@ -135,7 +144,7 @@ the order they are declared.</div>
 <div class="block">Compact a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        byte[]&nbsp;columnFamily,
@@ -143,7 +152,7 @@ the order they are declared.</div>
 <div class="block">Compact a column family within a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        byte[]&nbsp;columnFamily,
@@ -151,35 +160,35 @@ the order they are declared.</div>
 <div class="block">Compact a column family within a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#compact-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        <a href="../../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Compact a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        <a href="../../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Compact a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#getCompactionState-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">getCompactionState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Get the current compaction state of a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getCompactionState-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">getCompactionState</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Get the current compaction state of a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.CompactType-">majorCompact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
             byte[]&nbsp;columnFamily,
@@ -187,7 +196,7 @@ the order they are declared.</div>
 <div class="block">Major compact a column family within a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.CompactType-">majorCompact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
             byte[]&nbsp;columnFamily,
@@ -195,14 +204,14 @@ the order they are declared.</div>
 <div class="block">Major compact a column family within a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/Admin.html#majorCompact-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">majorCompact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
             <a href="../../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Major compact a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">majorCompact</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
             <a href="../../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 4e02a26..efaff15 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -521,25 +521,25 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index 98fe2a3..96f0b14 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
 </ul>
 </li>
 </ul>

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
index e80db20..a35e05a 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
@@ -1297,7 +1297,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>buildDependencyClasspath</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.804">buildDependencyClasspath</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.805">buildDependencyClasspath</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Returns a classpath string built from the content of the "tmpjars" value in <code>conf</code>.
  Also exposed to shell scripts via `bin/hbase mapredcp`.</div>
 </li>
@@ -1308,7 +1308,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>addDependencyJars</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.828">addDependencyJars</a>(org.apache.hadoop.mapreduce.Job&nbsp;job)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.829">addDependencyJars</a>(org.apache.hadoop.mapreduce.Job&nbsp;job)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Add the HBase dependency jars as well as jars for any of the configured
  job classes to the job configuration, so that JobClient will ship them
@@ -1326,7 +1326,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <li class="blockList">
 <h4>addDependencyJars</h4>
 <pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.854">addDependencyJars</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.855">addDependencyJars</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;...&nbsp;classes)
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">rely on <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#addDependencyJars-org.apache.hadoop.mapreduce.Job-"><code>addDependencyJars(Job)</code></a> instead.</span></div>
@@ -1346,7 +1346,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <li class="blockList">
 <h4>addDependencyJarsForClasses</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.876">addDependencyJarsForClasses</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.877">addDependencyJarsForClasses</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;...&nbsp;classes)
                                                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Add the jars containing the given classes to the job's configuration
@@ -1371,7 +1371,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>findOrCreateJar</h4>
-<pre>private static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.923">findOrCreateJar</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;my_class,
+<pre>private static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.924">findOrCreateJar</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;my_class,
                                                          org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;packagedClasses)
                                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1399,7 +1399,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMap</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.947">updateMap</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;jar,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.948">updateMap</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;jar,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;packagedClasses)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Add entries to <code>packagedClasses</code> corresponding to class files
@@ -1419,7 +1419,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>findContainingJar</h4>
-<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.974">findContainingJar</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;my_class,
+<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.975">findContainingJar</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;my_class,
                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;packagedClasses)
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Find a jar that contains a class of the same name, if any. It will return
@@ -1442,7 +1442,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getJar</h4>
-<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.1014">getJar</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;my_class)</pre>
+<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.1015">getJar</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;my_class)</pre>
 <div class="block">Invoke 'getJar' on a custom JarFinder implementation. Useful for some job
  configuration contexts (HBASE-8140) and also for testing on MRv2.
  check if we have HADOOP-9426.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 2a07d75..b88dc3c 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -281,10 +281,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.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>
 <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/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/e2c783b2/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 0d989e3..39a5476 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -322,11 +322,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/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/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
+<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/e2c783b2/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 d3cc432..ff790b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -174,9 +174,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.MarkRegionOfflineOpResult.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">DisableTableProcedure.MarkRegionOfflineOpResult</span></a></li>
-<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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 f1def17..342945d 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -422,16 +422,16 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/HConstants.Modify.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.Modify</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 da16ba9..024ac82 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -178,11 +178,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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/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/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/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/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/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/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/e2c783b2/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html
index ac8e764..3eaebfb 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html
@@ -159,6 +159,10 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#store">store</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#time">time</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#user">user</a></span></code>&nbsp;</td>
 </tr>
@@ -288,12 +292,21 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <a name="user">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>user</h4>
 <pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.422">user</a></pre>
 </li>
 </ul>
+<a name="time">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>time</h4>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.423">time</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -308,7 +321,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CompactionRunner</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.424">CompactionRunner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.425">CompactionRunner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&nbsp;region,
                         <a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;parent,
@@ -329,7 +342,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.437">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.439">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -342,7 +355,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>doCompaction</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.442">doCompaction</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.445">doCompaction</a>(<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
 </li>
 </ul>
 <a name="run--">
@@ -351,7 +364,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.519">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.522">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -364,7 +377,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockList">
 <li class="blockList">
 <h4>formatStackTrace</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.528">formatStackTrace</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;ex)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.531">formatStackTrace</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;ex)</pre>
 </li>
 </ul>
 <a name="compareTo-org.apache.hadoop.hbase.regionserver.CompactSplitThread.CompactionRunner-">
@@ -373,7 +386,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.
 <ul class="blockListLast">
 <li class="blockList">
 <h4>compareTo</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.537">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplitThread.CompactionRunner</a>&nbsp;o)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#line.540">compareTo</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplitThread.CompactionRunner</a>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true#compareTo-T-" title="class or interface in java.lang">compareTo</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplitThread.CompactionRunner</a>&gt;</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html
index a2fe7c4..71b2988 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.551">CompactSplitThread.Rejection</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.554">CompactSplitThread.Rejection</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/RejectedExecutionHandler.html?is-external=true" title="class or interface in java.util.concurrent">RejectedExecutionHandler</a></pre>
 <div class="block">Cleanup class to use when rejecting a compaction request from the queue.</div>
@@ -191,7 +191,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>Rejection</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html#line.551">Rejection</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html#line.554">Rejection</a>()</pre>
 </li>
 </ul>
 </li>
@@ -208,7 +208,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>rejectedExecution</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html#line.553">rejectedExecution</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.Rejection.html#line.556">rejectedExecution</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;runnable,
                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;pool)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html
index c334291..493ed49 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html
@@ -1050,7 +1050,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Compacti
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.566">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.569">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
 <div class="block">This method would be called by the <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
  object when the <code>Configuration</code> object is reloaded from disk.</div>
 <dl>
@@ -1065,7 +1065,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Compacti
 <ul class="blockList">
 <li class="blockList">
 <h4>getSmallCompactionThreadNum</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.630">getSmallCompactionThreadNum</a>()</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.633">getSmallCompactionThreadNum</a>()</pre>
 </li>
 </ul>
 <a name="getLargeCompactionThreadNum--">
@@ -1074,7 +1074,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Compacti
 <ul class="blockList">
 <li class="blockList">
 <h4>getLargeCompactionThreadNum</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.634">getLargeCompactionThreadNum</a>()</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.637">getLargeCompactionThreadNum</a>()</pre>
 </li>
 </ul>
 <a name="getSplitThreadNum--">
@@ -1083,7 +1083,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Compacti
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitThreadNum</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.638">getSplitThreadNum</a>()</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.641">getSplitThreadNum</a>()</pre>
 </li>
 </ul>
 <a name="registerChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">
@@ -1092,7 +1092,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Compacti
 <ul class="blockList">
 <li class="blockList">
 <h4>registerChildren</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.646">registerChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.649">registerChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
 <div class="block">Needs to be called to register the children to the manager.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1108,7 +1108,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Compacti
 <ul class="blockList">
 <li class="blockList">
 <h4>deregisterChildren</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.654">deregisterChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.657">deregisterChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
 <div class="block">Needs to be called to deregister the children from the manager.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1124,7 +1124,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Compacti
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionThroughputController</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.659">getCompactionThroughputController</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.662">getCompactionThroughputController</a>()</pre>
 </li>
 </ul>
 <a name="shutdownLongCompactions--">
@@ -1133,7 +1133,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Compacti
 <ul class="blockListLast">
 <li class="blockList">
 <h4>shutdownLongCompactions</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.669">shutdownLongCompactions</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/CompactSplitThread.html#line.672">shutdownLongCompactions</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 f171fa9..65212e5 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -683,20 +683,20 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">StoreScanner.StoreScannerCompactionRace</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.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/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/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/MemStoreCompactor.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactor.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/ImmutableSegment.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ImmutableSegment.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionOpeningState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionOpeningState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/ImmutableSegment.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ImmutableSegment.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.FlushResult.Result</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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.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/Region.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/StoreScanner.StoreScannerCompactionRace.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">StoreScanner.StoreScannerCompactionRace</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactor.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactor.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
 </ul>
 </li>
 </ul>


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteNamespaceProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 c6248ac..98da217 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -125,10 +125,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteCompare.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteCompare</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/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.DeleteCompare.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteCompare</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 5de3ebd..59a46a4 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="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/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>
 </ul>
 </li>
 </ul>

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

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

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

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.AddColumnFamilyProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateNamespaceProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html
index a305c65..e670019 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i
 109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -115,7 +115,7 @@ var activeTableTab = "activeTableTab";
 <br>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
  <a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceStability.Evolving</a>
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.187">AsyncHBaseAdmin</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#line.194">AsyncHBaseAdmin</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></pre>
 <div class="block">The implementation of AsyncAdmin.</div>
@@ -233,34 +233,38 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#connection">connection</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#FLUSH_TABLE_PROCEDURE_SIGNATURE">FLUSH_TABLE_PROCEDURE_SIGNATURE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private static org.apache.commons.logging.Log</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#maxAttempts">maxAttempts</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.html" title="interface in org.apache.hadoop.hbase.client">RawAsyncTable</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#metaTable">metaTable</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/client/NonceGenerator.html" title="interface in org.apache.hadoop.hbase.client">NonceGenerator</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#ng">ng</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#operationTimeoutNs">operationTimeoutNs</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#pauseNs">pauseNs</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#rpcTimeoutNs">rpcTimeoutNs</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#startLogErrorsCnt">startLogErrorsCnt</a></span></code>&nbsp;</td>
 </tr>
@@ -409,30 +413,91 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
 </td>
 </tr>
 <tr id="i17" class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-boolean-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
+       <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
+       boolean&nbsp;major,
+       byte[]&nbsp;family)</code>
+<div class="block">Compact the region at specific region server.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Compact a table.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+       byte[]&nbsp;columnFamily)</code>
+<div class="block">Compact a column family within a table.</div>
+</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-boolean-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+       byte[]&nbsp;columnFamily,
+       boolean&nbsp;major,
+       <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
+<div class="block">Compact column family of a table, Asynchronous operation even if CompletableFuture.get()</div>
+</td>
+</tr>
+<tr id="i21" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegion-byte:A-">compactRegion</a></span>(byte[]&nbsp;regionName)</code>
+<div class="block">Compact an individual region.</div>
+</td>
+</tr>
+<tr id="i22" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegion-byte:A-byte:A-">compactRegion</a></span>(byte[]&nbsp;regionName,
+             byte[]&nbsp;columnFamily)</code>
+<div class="block">Compact a column family within a region.</div>
+</td>
+</tr>
+<tr id="i23" class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegion-byte:A-byte:A-boolean-">compactRegion</a></span>(byte[]&nbsp;regionName,
+             byte[]&nbsp;columnFamily,
+             boolean&nbsp;major)</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-">compactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Compact all regions on the region server.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-boolean-">compactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
+                   boolean&nbsp;major)</code>&nbsp;</td>
+</tr>
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>private &lt;T&gt;&nbsp;boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#completeExceptionally-java.util.concurrent.CompletableFuture-java.lang.Throwable-">completeExceptionally</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;T&gt;&nbsp;future,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#createNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-">createNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;descriptor)</code>
 <div class="block">Create a new namespace.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Creates a new table.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>
 <div class="block">Creates a new table with an initial set of empty regions defined by the specified split keys.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
@@ -441,56 +506,56 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
 <div class="block">Creates a new table with the specified number of regions.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteColumnFamily-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumnFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   byte[]&nbsp;columnFamily)</code>
 <div class="block">Delete a column family from a table.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteNamespace-java.lang.String-">deleteNamespace</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Delete an existing namespace.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteSnapshot-java.lang.String-">deleteSnapshot</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName)</code>
 <div class="block">Delete an existing snapshot.</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteSnapshots-java.util.regex.Pattern-">deleteSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;snapshotNamePattern)</code>
 <div class="block">Delete existing snapshots whose names match the pattern passed.</div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteSnapshots-java.lang.String-">deleteSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Delete existing snapshots whose names match the pattern passed.</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteTable-org.apache.hadoop.hbase.TableName-">deleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Deletes a table.</div>
 </td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteTables-java.util.regex.Pattern-">deleteTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Delete tables matching the passed in pattern and wait on completion.</div>
 </td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteTables-java.lang.String-">deleteTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Deletes tables matching the passed in pattern and wait on completion.</div>
 </td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteTableSnapshots-java.util.regex.Pattern-java.util.regex.Pattern-">deleteTableSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;tableNamePattern,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;snapshotNamePattern)</code>
@@ -498,7 +563,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
  name regular expression.</div>
 </td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteTableSnapshots-java.lang.String-java.lang.String-">deleteTableSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableNameRegex,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotNameRegex)</code>
@@ -506,55 +571,55 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
  name regular expression.</div>
 </td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i41" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#disableReplicationPeer-java.lang.String-">disableReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Stop the replication stream to the specified peer</div>
 </td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i42" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#disableTable-org.apache.hadoop.hbase.TableName-">disableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Disable a table.</div>
 </td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#disableTables-java.util.regex.Pattern-">disableTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Disable tables matching the passed in pattern.</div>
 </td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#disableTables-java.lang.String-">disableTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Disable tables matching the passed in pattern.</div>
 </td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#enableReplicationPeer-java.lang.String-">enableReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Restart the replication stream to the specified peer</div>
 </td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i46" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#enableTable-org.apache.hadoop.hbase.TableName-">enableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Enable a table.</div>
 </td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#enableTables-java.util.regex.Pattern-">enableTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Enable tables matching the passed in pattern.</div>
 </td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#enableTables-java.lang.String-">enableTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Enable tables matching the passed in pattern.</div>
 </td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#execProcedure-java.lang.String-java.lang.String-java.util.Map-">execProcedure</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;signature,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
@@ -562,7 +627,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
 <div class="block">Execute a distributed procedure on a cluster.</div>
 </td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;byte[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#execProcedureWithRet-java.lang.String-java.lang.String-java.util.Map-">execProcedureWithRet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;signature,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
@@ -570,83 +635,107 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
 <div class="block">Execute a distributed procedure on a cluster.</div>
 </td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code>private &lt;T&gt;&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;T&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#failedFuture-java.lang.Throwable-">failedFuture</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</code>&nbsp;</td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i52" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#flush-org.apache.hadoop.hbase.TableName-">flush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Flush a table.</div>
+</td>
+</tr>
+<tr id="i53" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#flushRegion-byte:A-">flushRegion</a></span>(byte[]&nbsp;regionName)</code>
+<div class="block">Flush an individual region.</div>
+</td>
+</tr>
+<tr id="i54" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getAlterStatus-org.apache.hadoop.hbase.TableName-">getAlterStatus</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Get the status of alter command - indicates how many regions have received the updated schema
  Asynchronous operation.</div>
 </td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html" title="class in org.apache.hadoop.hbase.client">AsyncConnectionImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getConnection--">getConnection</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getNamespaceDescriptor-java.lang.String-">getNamespaceDescriptor</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Get a namespace descriptor by name</div>
 </td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i57" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Get all the online regions on a region server.</div>
+</td>
+</tr>
+<tr id="i58" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getProcedureResult-long-java.util.concurrent.CompletableFuture-">getProcedureResult</a></span>(long&nbsp;procId,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;future)</code>&nbsp;</td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getQuota-org.apache.hadoop.hbase.quotas.QuotaFilter-">getQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaFilter.html" title="class in org.apache.hadoop.hbase.quotas">QuotaFilter</a>&nbsp;filter)</code>
 <div class="block">List the quotas based on the filter.</div>
 </td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getRegion-byte:A-">getRegion</a></span>(byte[]&nbsp;regionName)</code>&nbsp;</td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;byte[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getRegionName-byte:A-">getRegionName</a></span>(byte[]&nbsp;regionNameOrEncodedRegionName)</code>
 <div class="block">Turn regionNameOrEncodedRegionName into regionName, if region does not found, then it'll throw
  an IllegalArgumentException wrapped by a <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent"><code>CompletableFuture</code></a></div>
 </td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getReplicationPeerConfig-java.lang.String-">getReplicationPeerConfig</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Returns the configured ReplicationPeerConfig for the specified peer</div>
 </td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code>private byte[][]</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getSplitKeys-byte:A-byte:A-int-">getSplitKeys</a></span>(byte[]&nbsp;startKey,
             byte[]&nbsp;endKey,
             int&nbsp;numRegions)</code>&nbsp;</td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">getTableDescriptor</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Method for getting the tableDescriptor</div>
 </td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i65" class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getTableHRegionLocations-org.apache.hadoop.hbase.TableName-">getTableHRegionLocations</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">List all region locations for the specific table.</div>
+</td>
+</tr>
+<tr id="i66" class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#internalDeleteSnapshot-org.apache.hadoop.hbase.client.SnapshotDescription-">internalDeleteSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>&nbsp;</td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#internalRestoreSnapshot-java.lang.String-org.apache.hadoop.hbase.TableName-">internalRestoreSnapshot</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName,
                        <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i68" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#isBalancerEnabled--">isBalancerEnabled</a></span>()</code>
 <div class="block">Query the current state of the balancer.</div>
 </td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i69" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#isProcedureFinished-java.lang.String-java.lang.String-java.util.Map-">isProcedureFinished</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;signature,
                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
@@ -654,17 +743,17 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
 <div class="block">Check the current state of the specified procedure.</div>
 </td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i70" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#isSnapshotFinished-org.apache.hadoop.hbase.client.SnapshotDescription-">isSnapshotFinished</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Check the current state of the passed snapshot.</div>
 </td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i71" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#isTableAvailable-org.apache.hadoop.hbase.TableName-">isTableAvailable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i72" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#isTableAvailable-org.apache.hadoop.hbase.TableName-byte:A:A-">isTableAvailable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 byte[][]&nbsp;splitKeys)</code>
@@ -672,109 +761,109 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
  which was used while creating the given table.</div>
 </td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#isTableDisabled-org.apache.hadoop.hbase.TableName-">isTableDisabled</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i74" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#isTableEnabled-org.apache.hadoop.hbase.TableName-">isTableEnabled</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i75" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listNamespaceDescriptors--">listNamespaceDescriptors</a></span>()</code>
 <div class="block">List available namespace descriptors</div>
 </td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i76" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listProcedures--">listProcedures</a></span>()</code>
 <div class="block">List procedures</div>
 </td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i77" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/replication/TableCFs.html" title="class in org.apache.hadoop.hbase.client.replication">TableCFs</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listReplicatedTableCFs--">listReplicatedTableCFs</a></span>()</code>
 <div class="block">Find all table and column families that are replicated from this cluster</div>
 </td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i78" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listReplicationPeers--">listReplicationPeers</a></span>()</code>
 <div class="block">Return a list of replication peers.</div>
 </td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i79" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listReplicationPeers-java.util.regex.Pattern-">listReplicationPeers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Return a list of replication peers.</div>
 </td>
 </tr>
-<tr id="i67" class="rowColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listReplicationPeers-java.lang.String-">listReplicationPeers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Return a list of replication peers.</div>
 </td>
 </tr>
-<tr id="i68" class="altColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listSnapshots--">listSnapshots</a></span>()</code>
 <div class="block">List completed snapshots.</div>
 </td>
 </tr>
-<tr id="i69" class="rowColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listSnapshots-java.util.regex.Pattern-">listSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">List all the completed snapshots matching the given pattern.</div>
 </td>
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listSnapshots-java.lang.String-">listSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">List all the completed snapshots matching the given regular expression.</div>
 </td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listTableNames--">listTableNames</a></span>()</code>
 <div class="block">List all of the names of userspace tables.</div>
 </td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listTableNames-java.util.regex.Pattern-boolean-">listTableNames</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
               boolean&nbsp;includeSysTables)</code>
 <div class="block">List all of the names of userspace tables.</div>
 </td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listTableNames-java.lang.String-boolean-">listTableNames</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
               boolean&nbsp;includeSysTables)</code>
 <div class="block">List all of the names of userspace tables.</div>
 </td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listTables--">listTables</a></span>()</code>
 <div class="block">List all the userspace tables.</div>
 </td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listTables-java.util.regex.Pattern-boolean-">listTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
           boolean&nbsp;includeSysTables)</code>
 <div class="block">List all the tables matching the given pattern.</div>
 </td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listTables-java.lang.String-boolean-">listTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
           boolean&nbsp;includeSysTables)</code>
 <div class="block">List all the tables matching the given pattern.</div>
 </td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listTableSnapshots-java.util.regex.Pattern-java.util.regex.Pattern-">listTableSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;tableNamePattern,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;snapshotNamePattern)</code>
@@ -782,7 +871,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
  name regular expression.</div>
 </td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#listTableSnapshots-java.lang.String-java.lang.String-">listTableSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableNameRegex,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotNameRegex)</code>
@@ -790,7 +879,39 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
  name regular expression.</div>
 </td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i92" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Major compact a table.</div>
+</td>
+</tr>
+<tr id="i93" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+            byte[]&nbsp;columnFamily)</code>
+<div class="block">Major compact a column family within a table.</div>
+</td>
+</tr>
+<tr id="i94" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompactRegion-byte:A-">majorCompactRegion</a></span>(byte[]&nbsp;regionName)</code>
+<div class="block">Major compact a table or an individual region.</div>
+</td>
+</tr>
+<tr id="i95" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompactRegion-byte:A-byte:A-">majorCompactRegion</a></span>(byte[]&nbsp;regionName,
+                  byte[]&nbsp;columnFamily)</code>
+<div class="block">Major compact a column family within region.</div>
+</td>
+</tr>
+<tr id="i96" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompactRegionServer-org.apache.hadoop.hbase.ServerName-">majorCompactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Compact all regions on the region server.</div>
+</td>
+</tr>
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#mergeRegions-byte:A-byte:A-boolean-">mergeRegions</a></span>(byte[]&nbsp;nameOfRegionA,
             byte[]&nbsp;nameOfRegionB,
@@ -798,105 +919,105 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.htm
 <div class="block">Merge two regions.</div>
 </td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#modifyColumnFamily-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.HColumnDescriptor-">modifyColumnFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>
 <div class="block">Modify an existing column family on a table.</div>
 </td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#modifyNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-">modifyNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;descriptor)</code>
 <div class="block">Modify an existing namespace.</div>
 </td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#move-byte:A-byte:A-">move</a></span>(byte[]&nbsp;regionName,
     byte[]&nbsp;destServerName)</code>
 <div class="block">Move the region <code>r</code> to <code>dest</code>.</div>
 </td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>private &lt;T&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder.html" title="class in org.apache.hadoop.hbase.client">AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder</a>&lt;T&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#newAdminCaller--">newAdminCaller</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code>private &lt;T&gt;&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder.html" title="class in org.apache.hadoop.hbase.client">AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder</a>&lt;T&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#newMasterCaller--">newMasterCaller</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#offline-byte:A-">offline</a></span>(byte[]&nbsp;regionName)</code>
 <div class="block">Offline specified region from master's in-memory state.</div>
 </td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code>private &lt;PREQ,PRESP&gt;<br><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#procedureCall-PREQ-org.apache.hadoop.hbase.client.AsyncHBaseAdmin.MasterRpcCall-org.apache.hadoop.hbase.client.AsyncHBaseAdmin.Converter-org.apache.hadoop.hbase.client.AsyncHBaseAdmin.ProcedureBiConsumer-">procedureCall</a></span>(PREQ&nbsp;preq,
              <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html" title="interface in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.MasterRpcCall</a>&lt;PRESP,PREQ&gt;&nbsp;rpcCall,
              <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html" title="interface in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.Converter</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,PRESP&gt;&nbsp;respConverter,
              <a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin.ProcedureBiConsumer</a>&nbsp;consumer)</code>&nbsp;</td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#removeReplicationPeer-java.lang.String-">removeReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Remove a peer and stop the replication</div>
 </td>
 </tr>
-<tr id="i88" class="altColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#removeReplicationPeerTableCFs-java.lang.String-java.util.Map-">removeReplicationPeerTableCFs</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;id,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,? extends <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;tableCfs)</code>
 <div class="block">Remove some table-cfs from config of the specified peer</div>
 </td>
 </tr>
-<tr id="i89" class="rowColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#restoreSnapshot-java.lang.String-">restoreSnapshot</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  }<a name="l

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MasterRpcCall.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
+<span class="so

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.TableOperator.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
+<span class="so

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyColumnFamilyProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesLi

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.EnableTableProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"><

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLine

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.NamespaceProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"></a>
+<span

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteTableProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"><

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.MergeTableRegionProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).ca

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html
index 39aaca5..dc8a182 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html
@@ -33,422 +33,649 @@
 <span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.util.ArrayList;<a name="line.26"></a>
 <span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.HConstants;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.ServerName;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.TableName;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.master.AssignmentManager;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.master.RegionStates;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.master.ServerManager;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.util.JVMClusterUtil;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.junit.Test;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.junit.experimental.categories.Category;<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> * Class to test asynchronous region admin operations.<a name="line.53"></a>
-<span class="sourceLineNo">054</span> */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>@Category({ MediumTests.class, ClientTests.class })<a name="line.55"></a>
-<span class="sourceLineNo">056</span>public class TestAsyncRegionAdminApi extends TestAsyncAdminBase {<a name="line.56"></a>
+<span class="sourceLineNo">028</span>import java.util.Random;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.concurrent.atomic.AtomicInteger;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.stream.Collectors;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HConstants;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HRegionLocation;<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.ServerName;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.TableName;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.master.AssignmentManager;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.master.RegionStates;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.master.ServerManager;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.regionserver.HRegionServer;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.regionserver.Region;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<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.JVMClusterUtil;<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.junit.Assert;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.junit.Test;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.junit.experimental.categories.Category;<a name="line.56"></a>
 <span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private void createTableWithDefaultConf(TableName TABLENAME) throws Exception {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    HTableDescriptor htd = new HTableDescriptor(TABLENAME);<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    HColumnDescriptor hcd = new HColumnDescriptor("value");<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    htd.addFamily(hcd);<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>    admin.createTable(htd, null).get();<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  }<a name="line.64"></a>
+<span class="sourceLineNo">058</span>/**<a name="line.58"></a>
+<span class="sourceLineNo">059</span> * Class to test asynchronous region admin operations.<a name="line.59"></a>
+<span class="sourceLineNo">060</span> */<a name="line.60"></a>
+<span class="sourceLineNo">061</span>@Category({ MediumTests.class, ClientTests.class })<a name="line.61"></a>
+<span class="sourceLineNo">062</span>public class TestAsyncRegionAdminApi extends TestAsyncAdminBase {<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  public static Random RANDOM = new Random(System.currentTimeMillis());<a name="line.64"></a>
 <span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>  @Test<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  public void testCloseRegion() throws Exception {<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    TableName TABLENAME = TableName.valueOf("TestHBACloseRegion");<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    createTableWithDefaultConf(TABLENAME);<a name="line.69"></a>
+<span class="sourceLineNo">066</span>  private void createTableWithDefaultConf(TableName TABLENAME) throws Exception {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    HTableDescriptor htd = new HTableDescriptor(TABLENAME);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    HColumnDescriptor hcd = new HColumnDescriptor("value");<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    htd.addFamily(hcd);<a name="line.69"></a>
 <span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>    HRegionInfo info = null;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TABLENAME);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    for (HRegionInfo regionInfo : onlineRegions) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      if (!regionInfo.getTable().isSystemTable()) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>        info = regionInfo;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>        boolean closed = admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(),<a name="line.77"></a>
-<span class="sourceLineNo">078</span>          rs.getServerName().getServerName()).get();<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        assertTrue(closed);<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>    boolean isInList = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices()).contains(info);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    long timeout = System.currentTimeMillis() + 10000;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    while ((System.currentTimeMillis() &lt; timeout) &amp;&amp; (isInList)) {<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      Thread.sleep(100);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      isInList = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices()).contains(info);<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>    assertFalse("The region should not be present in online regions list.", isInList);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
-<span class="sourceLineNo">091</span><a name="line.91"></a>
-<span class="sourceLineNo">092</span>  @Test<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public void testCloseRegionIfInvalidRegionNameIsPassed() throws Exception {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>    final String name = "TestHBACloseRegion1";<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    byte[] TABLENAME = Bytes.toBytes(name);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    createTableWithDefaultConf(TableName.valueOf(TABLENAME));<a name="line.96"></a>
-<span class="sourceLineNo">097</span><a name="line.97"></a>
-<span class="sourceLineNo">098</span>    HRegionInfo info = null;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TableName.valueOf(TABLENAME));<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    for (HRegionInfo regionInfo : onlineRegions) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      if (!regionInfo.isMetaTable()) {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>        if (regionInfo.getRegionNameAsString().contains(name)) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>          info = regionInfo;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>          boolean catchNotServingException = false;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>          try {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>            admin.closeRegionWithEncodedRegionName("sample", rs.getServerName().getServerName())<a name="line.107"></a>
-<span class="sourceLineNo">108</span>                .get();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>          } catch (Exception e) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            catchNotServingException = true;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>            // expected, ignore it<a name="line.111"></a>
-<span class="sourceLineNo">112</span>          }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>          assertTrue(catchNotServingException);<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 name="line.116"></a>
-<span class="sourceLineNo">117</span>    onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    assertTrue("The region should be present in online regions list.",<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      onlineRegions.contains(info));<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>  @Test<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  public void testCloseRegionWhenServerNameIsNull() throws Exception {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    byte[] TABLENAME = Bytes.toBytes("TestHBACloseRegion3");<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    createTableWithDefaultConf(TableName.valueOf(TABLENAME));<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TableName.valueOf(TABLENAME));<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>    try {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      for (HRegionInfo regionInfo : onlineRegions) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        if (!regionInfo.isMetaTable()) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>          if (regionInfo.getRegionNameAsString().contains("TestHBACloseRegion3")) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>            admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(), null).get();<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>      fail("The test should throw exception if the servername passed is null.");<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    } catch (IllegalArgumentException e) {<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><a name="line.142"></a>
-<span class="sourceLineNo">143</span>  @Test<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  public void testCloseRegionWhenServerNameIsEmpty() throws Exception {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    byte[] TABLENAME = Bytes.toBytes("TestHBACloseRegionWhenServerNameIsEmpty");<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    createTableWithDefaultConf(TableName.valueOf(TABLENAME));<a name="line.146"></a>
-<span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TableName.valueOf(TABLENAME));<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span>    try {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      for (HRegionInfo regionInfo : onlineRegions) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        if (!regionInfo.isMetaTable()) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          if (regionInfo.getRegionNameAsString()<a name="line.154"></a>
-<span class="sourceLineNo">155</span>              .contains("TestHBACloseRegionWhenServerNameIsEmpty")) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>            admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(), " ").get();<a name="line.156"></a>
-<span class="sourceLineNo">157</span>          }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      fail("The test should throw exception if the servername passed is empty.");<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    } catch (IllegalArgumentException e) {<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><a name="line.164"></a>
-<span class="sourceLineNo">165</span>  @Test<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public void testCloseRegionWhenEncodedRegionNameIsNotGiven() throws Exception {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    byte[] TABLENAME = Bytes.toBytes("TestHBACloseRegion4");<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    createTableWithDefaultConf(TableName.valueOf(TABLENAME));<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    HRegionInfo info = null;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TableName.valueOf(TABLENAME));<a name="line.171"></a>
+<span class="sourceLineNo">071</span>    admin.createTable(htd, null).get();<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>  @Test<a name="line.74"></a>
+<span class="sourceLineNo">075</span>  public void testCloseRegion() throws Exception {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    TableName TABLENAME = TableName.valueOf("TestHBACloseRegion");<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    createTableWithDefaultConf(TABLENAME);<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>    HRegionInfo info = null;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TABLENAME);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    for (HRegionInfo regionInfo : onlineRegions) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      if (!regionInfo.getTable().isSystemTable()) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>        info = regionInfo;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>        boolean closed = admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(),<a name="line.85"></a>
+<span class="sourceLineNo">086</span>          rs.getServerName().getServerName()).get();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>        assertTrue(closed);<a name="line.87"></a>
+<span class="sourceLineNo">088</span>      }<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    }<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    boolean isInList = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices()).contains(info);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    long timeout = System.currentTimeMillis() + 10000;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    while ((System.currentTimeMillis() &lt; timeout) &amp;&amp; (isInList)) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      Thread.sleep(100);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      isInList = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices()).contains(info);<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>    assertFalse("The region should not be present in online regions list.", isInList);<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>  @Test<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  public void testCloseRegionIfInvalidRegionNameIsPassed() throws Exception {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    final String name = "TestHBACloseRegion1";<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    byte[] TABLENAME = Bytes.toBytes(name);<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    createTableWithDefaultConf(TableName.valueOf(TABLENAME));<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>    HRegionInfo info = null;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TableName.valueOf(TABLENAME));<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    for (HRegionInfo regionInfo : onlineRegions) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      if (!regionInfo.isMetaTable()) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        if (regionInfo.getRegionNameAsString().contains(name)) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>          info = regionInfo;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>          boolean catchNotServingException = false;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>          try {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>            admin.closeRegionWithEncodedRegionName("sample", rs.getServerName().getServerName())<a name="line.115"></a>
+<span class="sourceLineNo">116</span>                .get();<a name="line.116"></a>
+<span class="sourceLineNo">117</span>          } catch (Exception e) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>            catchNotServingException = true;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>            // expected, ignore it<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          }<a name="line.120"></a>
+<span class="sourceLineNo">121</span>          assertTrue(catchNotServingException);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        }<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    assertTrue("The region should be present in online regions list.",<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      onlineRegions.contains(info));<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
+<span class="sourceLineNo">129</span><a name="line.129"></a>
+<span class="sourceLineNo">130</span>  @Test<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  public void testCloseRegionWhenServerNameIsNull() throws Exception {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    byte[] TABLENAME = Bytes.toBytes("TestHBACloseRegion3");<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    createTableWithDefaultConf(TableName.valueOf(TABLENAME));<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TableName.valueOf(TABLENAME));<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      for (HRegionInfo regionInfo : onlineRegions) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        if (!regionInfo.isMetaTable()) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          if (regionInfo.getRegionNameAsString().contains("TestHBACloseRegion3")) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>            admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(), null).get();<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>      fail("The test should throw exception if the servername passed is null.");<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    } catch (IllegalArgumentException e) {<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><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  @Test<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public void testCloseRegionWhenServerNameIsEmpty() throws Exception {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    byte[] TABLENAME = Bytes.toBytes("TestHBACloseRegionWhenServerNameIsEmpty");<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    createTableWithDefaultConf(TableName.valueOf(TABLENAME));<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TableName.valueOf(TABLENAME));<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>    try {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      for (HRegionInfo regionInfo : onlineRegions) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        if (!regionInfo.isMetaTable()) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          if (regionInfo.getRegionNameAsString()<a name="line.162"></a>
+<span class="sourceLineNo">163</span>              .contains("TestHBACloseRegionWhenServerNameIsEmpty")) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            admin.closeRegionWithEncodedRegionName(regionInfo.getEncodedName(), " ").get();<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>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      fail("The test should throw exception if the servername passed is empty.");<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    } catch (IllegalArgumentException e) {<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    }<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  }<a name="line.171"></a>
 <span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>    List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    for (HRegionInfo regionInfo : onlineRegions) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      if (!regionInfo.isMetaTable()) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        if (regionInfo.getRegionNameAsString().contains("TestHBACloseRegion4")) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>          info = regionInfo;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>          boolean catchNotServingException = false;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>          try {<a name="line.179"></a>
-<span class="sourceLineNo">180</span>            admin.closeRegionWithEncodedRegionName(regionInfo.getRegionNameAsString(),<a name="line.180"></a>
-<span class="sourceLineNo">181</span>              rs.getServerName().getServerName()).get();<a name="line.181"></a>
-<span class="sourceLineNo">182</span>          } catch (Exception e) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>            // expected, ignore it.<a name="line.183"></a>
-<span class="sourceLineNo">184</span>            catchNotServingException = true;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>          }<a name="line.185"></a>
-<span class="sourceLineNo">186</span>          assertTrue(catchNotServingException);<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>    }<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    assertTrue("The region should be present in online regions list.",<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      onlineRegions.contains(info));<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  @Test<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  public void testGetRegion() throws Exception {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    AsyncHBaseAdmin rawAdmin = (AsyncHBaseAdmin) admin;<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    final TableName tableName = TableName.valueOf("testGetRegion");<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    LOG.info("Started " + tableName);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    TEST_UTIL.createMultiRegionTable(tableName, HConstants.CATALOG_FAMILY);<a name="line.201"></a>
+<span class="sourceLineNo">173</span>  @Test<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public void testCloseRegionWhenEncodedRegionNameIsNotGiven() throws Exception {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    byte[] TABLENAME = Bytes.toBytes("TestHBACloseRegion4");<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    createTableWithDefaultConf(TableName.valueOf(TABLENAME));<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>    HRegionInfo info = null;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    HRegionServer rs = TEST_UTIL.getRSForFirstRegionInTable(TableName.valueOf(TABLENAME));<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>    List&lt;HRegionInfo&gt; onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    for (HRegionInfo regionInfo : onlineRegions) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      if (!regionInfo.isMetaTable()) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>        if (regionInfo.getRegionNameAsString().contains("TestHBACloseRegion4")) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          info = regionInfo;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>          boolean catchNotServingException = false;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>          try {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>            admin.closeRegionWithEncodedRegionName(regionInfo.getRegionNameAsString(),<a name="line.188"></a>
+<span class="sourceLineNo">189</span>              rs.getServerName().getServerName()).get();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          } catch (Exception e) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>            // expected, ignore it.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>            catchNotServingException = true;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          assertTrue(catchNotServingException);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        }<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    onlineRegions = ProtobufUtil.getOnlineRegions(rs.getRSRpcServices());<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    assertTrue("The region should be present in online regions list.",<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      onlineRegions.contains(info));<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>    try (RegionLocator locator = TEST_UTIL.getConnection().getRegionLocator(tableName)) {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      HRegionLocation regionLocation = locator.getRegionLocation(Bytes.toBytes("mmm"));<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      HRegionInfo region = regionLocation.getRegionInfo();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      byte[] regionName = region.getRegionName();<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      Pair&lt;HRegionInfo, ServerName&gt; pair = rawAdmin.getRegion(regionName).get();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      assertTrue(Bytes.equals(regionName, pair.getFirst().getRegionName()));<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      pair = rawAdmin.getRegion(region.getEncodedNameAsBytes()).get();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      assertTrue(Bytes.equals(regionName, pair.getFirst().getRegionName()));<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  @Test<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  public void testMergeRegions() throws Exception {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    final TableName tableName = TableName.valueOf("testMergeRegions");<a name="line.216"></a>
-<span class="sourceLineNo">217</span>    HColumnDescriptor cd = new HColumnDescriptor("d");<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    HTableDescriptor td = new HTableDescriptor(tableName);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    td.addFamily(cd);<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    byte[][] splitRows = new byte[][] { Bytes.toBytes("3"), Bytes.toBytes("6") };<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    Admin syncAdmin = TEST_UTIL.getAdmin();<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    try {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      TEST_UTIL.createTable(td, splitRows);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      TEST_UTIL.waitTableAvailable(tableName);<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>      List&lt;HRegionInfo&gt; tableRegions;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      HRegionInfo regionA;<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      HRegionInfo regionB;<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>      // merge with full name<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      tableRegions = syncAdmin.getTableRegions(tableName);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      assertEquals(3, syncAdmin.getTableRegions(tableName).size());<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      regionA = tableRegions.get(0);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      regionB = tableRegions.get(1);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      admin.mergeRegions(regionA.getRegionName(), regionB.getRegionName(), false).get();<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>      assertEquals(2, syncAdmin.getTableRegions(tableName).size());<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // merge with encoded name<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      tableRegions = syncAdmin.getTableRegions(tableName);<a name="line.240"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testGetRegion() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    AsyncHBaseAdmin rawAdmin = (AsyncHBaseAdmin) admin;<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>    final TableName tableName = TableName.valueOf("testGetRegion");<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    LOG.info("Started " + tableName);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    TEST_UTIL.createMultiRegionTable(tableName, HConstants.CATALOG_FAMILY);<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    try (RegionLocator locator = TEST_UTIL.getConnection().getRegionLocator(tableName)) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      HRegionLocation regionLocation = locator.getRegionLocation(Bytes.toBytes("mmm"));<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      HRegionInfo region = regionLocation.getRegionInfo();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      byte[] regionName = region.getRegionName();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      Pair&lt;HRegionInfo, ServerName&gt; pair = rawAdmin.getRegion(regionName).get();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      assertTrue(Bytes.equals(regionName, pair.getFirst().getRegionName()));<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      pair = rawAdmin.getRegion(region.getEncodedNameAsBytes()).get();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>      assertTrue(Bytes.equals(regionName, pair.getFirst().getRegionName()));<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
+<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>  @Test<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  public void testMergeRegions() throws Exception {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    final TableName tableName = TableName.valueOf("testMergeRegions");<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    HColumnDescriptor cd = new HColumnDescriptor("d");<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    HTableDescriptor td = new HTableDescriptor(tableName);<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    td.addFamily(cd);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    byte[][] splitRows = new byte[][] { Bytes.toBytes("3"), Bytes.toBytes("6") };<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    Admin syncAdmin = TEST_UTIL.getAdmin();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    try {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      TEST_UTIL.createTable(td, splitRows);<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      TEST_UTIL.waitTableAvailable(tableName);<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>      List&lt;HRegionInfo&gt; tableRegions;<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      HRegionInfo regionA;<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      HRegionInfo regionB;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>      // merge with full name<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      tableRegions = syncAdmin.getTableRegions(tableName);<a name="line.239"></a>
+<span class="sourceLineNo">240</span>      assertEquals(3, syncAdmin.getTableRegions(tableName).size());<a name="line.240"></a>
 <span class="sourceLineNo">241</span>      regionA = tableRegions.get(0);<a name="line.241"></a>
 <span class="sourceLineNo">242</span>      regionB = tableRegions.get(1);<a name="line.242"></a>
 <span class="sourceLineNo">243</span>      admin.mergeRegions(regionA.getRegionName(), regionB.getRegionName(), false).get();<a name="line.243"></a>
 <span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>      assertEquals(1, syncAdmin.getTableRegions(tableName).size());<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    } finally {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      syncAdmin.disableTable(tableName);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      syncAdmin.deleteTable(tableName);<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><a name="line.251"></a>
-<span class="sourceLineNo">252</span>  @Test<a name="line.252"></a>
-<span class="sourceLineNo">253</span>  public void testSplitTable() throws Exception {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    splitTests(TableName.valueOf("testSplitTable"), 3000, false, null);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    splitTests(TableName.valueOf("testSplitTableWithSplitPoint"), 3000, false, Bytes.toBytes("3"));<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    splitTests(TableName.valueOf("testSplitRegion"), 3000, true, null);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    splitTests(TableName.valueOf("testSplitRegionWithSplitPoint"), 3000, true, Bytes.toBytes("3"));<a name="line.257"></a>
+<span class="sourceLineNo">245</span>      assertEquals(2, syncAdmin.getTableRegions(tableName).size());<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>      // merge with encoded name<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      tableRegions = syncAdmin.getTableRegions(tableName);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      regionA = tableRegions.get(0);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      regionB = tableRegions.get(1);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      admin.mergeRegions(regionA.getRegionName(), regionB.getRegionName(), false).get();<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>      assertEquals(1, syncAdmin.getTableRegions(tableName).size());<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    } finally {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      syncAdmin.disableTable(tableName);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      syncAdmin.deleteTable(tableName);<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><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  private void splitTests(TableName tableName, int rowCount, boolean isSplitRegion,<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      byte[] splitPoint) throws Exception {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    int count = 0;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // create table<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    HColumnDescriptor cd = new HColumnDescriptor("d");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    HTableDescriptor td = new HTableDescriptor(tableName);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    td.addFamily(cd);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>    Table table = TEST_UTIL.createTable(td, null);<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.268"></a>
-<span class="sourceLineNo">269</span><a name="line.269"></a>
-<span class="sourceLineNo">270</span>    List&lt;HRegionInfo&gt; regions = TEST_UTIL.getAdmin().getTableRegions(tableName);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    assertEquals(regions.size(), 1);<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>    List&lt;Put&gt; puts = new ArrayList&lt;&gt;();<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    for (int i = 0; i &lt; rowCount; i++) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      Put put = new Put(Bytes.toBytes(i));<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      put.addColumn(Bytes.toBytes("d"), null, Bytes.toBytes("value" + i));<a name="line.276"></a>
-<span class="sourceLineNo">277</span>      puts.add(put);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    }<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    table.put(puts);<a name="line.279"></a>
+<span class="sourceLineNo">260</span>  @Test<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  public void testSplitTable() throws Exception {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    splitTests(TableName.valueOf("testSplitTable"), 3000, false, null);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    splitTests(TableName.valueOf("testSplitTableWithSplitPoint"), 3000, false, Bytes.toBytes("3"));<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    splitTests(TableName.valueOf("testSplitRegion"), 3000, true, null);<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    splitTests(TableName.valueOf("testSplitRegionWithSplitPoint"), 3000, true, Bytes.toBytes("3"));<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>  private void splitTests(TableName tableName, int rowCount, boolean isSplitRegion,<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      byte[] splitPoint) throws Exception {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    int count = 0;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    // create table<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    HColumnDescriptor cd = new HColumnDescriptor("d");<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    HTableDescriptor td = new HTableDescriptor(tableName);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    td.addFamily(cd);<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    Table table = TEST_UTIL.createTable(td, null);<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    TEST_UTIL.waitTableAvailable(tableName);<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>    List&lt;HRegionInfo&gt; regions = TEST_UTIL.getAdmin().getTableRegions(tableName);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    assertEquals(regions.size(), 1);<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>    if (isSplitRegion) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      admin.splitRegion(regions.get(0).getRegionName(), splitPoint).get();<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    } else {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      if (splitPoint == null) {<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        admin.split(tableName).get();<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      } else {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        admin.split(tableName, splitPoint).get();<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      }<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    }<a name="line.289"></a>
-<span class="sourceLineNo">290</span><a name="line.290"></a>
-<span class="sourceLineNo">291</span>    for (int i = 0; i &lt; 45; i++) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      try {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        List&lt;HRegionInfo&gt; hRegionInfos = TEST_UTIL.getAdmin().getTableRegions(tableName);<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        count = hRegionInfos.size();<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        if (count &gt;= 2) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>          break;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        Thread.sleep(1000L);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      } catch (Exception e) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        LOG.error(e);<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      }<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    }<a name="line.302"></a>
-<span class="sourceLineNo">303</span><a name="line.303"></a>
-<span class="sourceLineNo">304</span>    assertEquals(count, 2);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  @Test<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void testAssignRegionAndUnassignRegion() throws Exception {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    final TableName tableName = TableName.valueOf("testAssignRegionAndUnassignRegion");<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    try {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      // create test table<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      desc.addFamily(new HColumnDescriptor(FAMILY));<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      admin.createTable(desc).get();<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>      // add region to meta.<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      Table meta = TEST_UTIL.getConnection().getTable(TableName.META_TABLE_NAME);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      HRegionInfo hri =<a name="line.318"></a>
-<span class="sourceLineNo">319</span>          new HRegionInfo(desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      MetaTableAccessor.addRegionToMeta(meta, hri);<a name="line.320"></a>
-<span class="sourceLineNo">321</span><a name="line.321"></a>
-<span class="sourceLineNo">322</span>      // assign region.<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      HMaster master = TEST_UTIL.getHBaseCluster().getMaster();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      AssignmentManager am = master.getAssignmentManager();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      admin.assign(hri.getRegionName()).get();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      am.waitForAssignment(hri);<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>      // assert region on server<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      RegionStates regionStates = am.getRegionStates();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>      ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      TEST_UTIL.assertRegionOnServer(hri, serverName, 200);<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      assertTrue(regionStates.getRegionState(hri).isOpened());<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>      // Region is assigned now. Let's assign it again.<a name="line.334"></a>
-<span class="sourceLineNo">335</span>      // Master should not abort, and region should be assigned.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>      admin.assign(hri.getRegionName()).get();<a name="line.336"></a>
-<span class="sourceLineNo">337</span>      am.waitForAssignment(hri);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      assertTrue(regionStates.getRegionState(hri).isOpened());<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>      // unassign region<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      admin.unassign(hri.getRegionName(), true).get();<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      am.waitForAssignment(hri);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>      assertTrue(regionStates.getRegionState(hri).isOpened());<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    } finally {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      TEST_UTIL.deleteTable(tableName);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    }<a name="line.346"></a>
-<span class="sourceLineNo">347</span>  }<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span>  HRegionInfo createTableAndGetOneRegion(final TableName tableName)<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      throws IOException, InterruptedException {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    desc.addFamily(new HColumnDescriptor(FAMILY));<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    admin.createTable(desc, Bytes.toBytes("A"), Bytes.toBytes("Z"), 5);<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>    // wait till the table is assigned<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    HMaster master = TEST_UTIL.getHBaseCluster().getMaster();<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    long timeoutTime = System.currentTimeMillis() + 3000;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    while (true) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      List&lt;HRegionInfo&gt; regions =<a name="line.359"></a>
-<span class="sourceLineNo">360</span>          master.getAssignmentManager().getRegionStates().getRegionsOfTable(tableName);<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      if (regions.size() &gt; 3) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        return regions.get(2);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      long now = System.currentTimeMillis();<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      if (now &gt; timeoutTime) {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>        fail("Could not find an online region");<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      Thread.sleep(10);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>    }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>  @Test<a name="line.372"></a>
-<span class="sourceLineNo">373</span>  public void testOfflineRegion() throws Exception {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    final TableName tableName = TableName.valueOf("testOfflineRegion");<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    try {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      HRegionInfo hri = createTableAndGetOneRegion(tableName);<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>      RegionStates regionStates =<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager().getRegionStates();<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      TEST_UTIL.assertRegionOnServer(hri, serverName, 200);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      admin.offline(hri.getRegionName()).get();<a name="line.382"></a>
-<span class="sourceLineNo">383</span><a name="line.383"></a>
-<span class="sourceLineNo">384</span>      long timeoutTime = System.currentTimeMillis() + 3000;<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      while (true) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        if (regionStates.getRegionByStateOfTable(tableName).get(RegionState.State.OFFLINE)<a name="line.386"></a>
-<span class="sourceLineNo">387</span>            .contains(hri))<a name="line.387"></a>
-<span class="sourceLineNo">388</span>          break;<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        long now = System.currentTimeMillis();<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        if (now &gt; timeoutTime) {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          fail("Failed to offline the region in time");<a name="line.391"></a>
-<span class="sourceLineNo">392</span>          break;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>        }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>        Thread.sleep(10);<a name="line.394"></a>
-<span class="sourceLineNo">395</span>      }<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      RegionState regionState = regionStates.getRegionState(hri);<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      assertTrue(regionState.isOffline());<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    } finally {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      TEST_UTIL.deleteTable(tableName);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
-<span class="sourceLineNo">401</span>  }<a name="line.401"></a>
-<span class="sourceLineNo">402</span><a name="line.402"></a>
-<span class="sourceLineNo">403</span>  @Test<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  public void testMoveRegion() throws Exception {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    final TableName tableName = TableName.valueOf("testMoveRegion");<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    try {<a name="line.406"></a>
-<span class="sourceLineNo">407</span>      HRegionInfo hri = createTableAndGetOneRegion(tableName);<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>      HMaster master = TEST_UTIL.getHBaseCluster().getMaster();<a name="line.409"></a>
-<span class="sourceLineNo">410</span>      RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.410"></a>
-<span class="sourceLineNo">411</span>      ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.411"></a>
-<span class="sourceLineNo">412</span>      ServerManager serverManager = master.getServerManager();<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      ServerName destServerName = null;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      List&lt;JVMClusterUtil.RegionServerThread&gt; regionServers =<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          TEST_UTIL.getHBaseCluster().getLiveRegionServerThreads();<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      for (JVMClusterUtil.RegionServerThread regionServer : regionServers) {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>        HRegionServer destServer = regionServer.getRegionServer();<a name="line.417"></a>
-<span class="sourceLineNo">418</span>        destServerName = destServer.getServerName();<a name="line.418"></a>
-<span class="sourceLineNo">419</span>        if (!destServerName.equals(serverName) &amp;&amp; serverManager.isServerOnline(destServerName)) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>          break;<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>      assertTrue(destServerName != null &amp;&amp; !destServerName.equals(serverName));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>      admin.move(hri.getEncodedNameAsBytes(), Bytes.toBytes(destServerName.getServerName())).get();<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>      long timeoutTime = System.currentTimeMillis() + 30000;<a name="line.426"></a>
-<span class="sourceLineNo">427</span>      while (true) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>        ServerName sn = regionStates.getRegionServerOfRegion(hri);<a name="line.428"></a>
-<span class="sourceLineNo">429</span>        if (sn != null &amp;&amp; sn.equals(destServerName)) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>          TEST_UTIL.assertRegionOnServer(hri, sn, 200);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>          break;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>        }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        long now = System.currentTimeMillis();<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        if (now &gt; timeoutTime) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>          fail("Failed to move the region in time: " + regionStates.getRegionState(hri));<a name="line.435"></a>
-<span class="sourceLineNo">436</span>        }<a name="line.436"></a>
-<span class="sourceLineNo">437</span>        regionStates.waitForUpdate(50);<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      }<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    } finally {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>      TEST_UTIL.deleteTable(tableName);<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    }<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>}<a name="line.443"></a>
+<span class="sourceLineNo">281</span>    List&lt;Put&gt; puts = new ArrayList&lt;&gt;();<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    for (int i = 0; i &lt; rowCount; i++) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      Put put = new Put(Bytes.toBytes(i));<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      put.addColumn(Bytes.toBytes("d"), null, Bytes.toBytes("value" + i));<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      puts.add(put);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    table.put(puts);<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    if (isSplitRegion) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      admin.splitRegion(regions.get(0).getRegionName(), splitPoint).get();<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    } else {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>      if (splitPoint == null) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        admin.split(tableName).get();<a name="line.293"></a>
+<span class="sourceLineNo">294</span>      } else {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>        admin.split(tableName, splitPoint).get();<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      }<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    }<a name="line.297"></a>
+<span class="sourceLineNo">298</span><a name="line.298"></a>
+<span class="sourceLineNo">299</span>    for (int i = 0; i &lt; 45; i++) {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      try {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        List&lt;HRegionInfo&gt; hRegionInfos = TEST_UTIL.getAdmin().getTableRegions(tableName);<a name="line.301"></a>
+<span class="sourceLineNo">302</span>        count = hRegionInfos.size();<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        if (count &gt;= 2) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>          break;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>        }<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        Thread.sleep(1000L);<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      } catch (Exception e) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        LOG.error(e);<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>    assertEquals(count, 2);<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  }<a name="line.313"></a>
+<span class="sourceLineNo">314</span><a name="line.314"></a>
+<span class="sourceLineNo">315</span>  @Test<a name="line.315"></a>
+<span class="sourceLineNo">316</span>  public void testAssignRegionAndUnassignRegion() throws Exception {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    final TableName tableName = TableName.valueOf("testAssignRegionAndUnassignRegion");<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    try {<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      // create test table<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>      desc.addFamily(new HColumnDescriptor(FAMILY));<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      admin.createTable(desc).get();<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>      // add region to meta.<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      Table meta = TEST_UTIL.getConnection().getTable(TableName.META_TABLE_NAME);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      HRegionInfo hri =<a name="line.326"></a>
+<span class="sourceLineNo">327</span>          new HRegionInfo(desc.getTableName(), Bytes.toBytes("A"), Bytes.toBytes("Z"));<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      MetaTableAccessor.addRegionToMeta(meta, hri);<a name="line.328"></a>
+<span class="sourceLineNo">329</span><a name="line.329"></a>
+<span class="sourceLineNo">330</span>      // assign region.<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      HMaster master = TEST_UTIL.getHBaseCluster().getMaster();<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      AssignmentManager am = master.getAssignmentManager();<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      admin.assign(hri.getRegionName()).get();<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      am.waitForAssignment(hri);<a name="line.334"></a>
+<span class="sourceLineNo">335</span><a name="line.335"></a>
+<span class="sourceLineNo">336</span>      // assert region on server<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      RegionStates regionStates = am.getRegionStates();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>      TEST_UTIL.assertRegionOnServer(hri, serverName, 200);<a name="line.339"></a>
+<span class="sourceLineNo">340</span>      assertTrue(regionStates.getRegionState(hri).isOpened());<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span>      // Region is assigned now. Let's assign it again.<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      // Master should not abort, and region should be assigned.<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      admin.assign(hri.getRegionName()).get();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      am.waitForAssignment(hri);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>      assertTrue(regionStates.getRegionState(hri).isOpened());<a name="line.346"></a>
+<span class="sourceLineNo">347</span><a name="line.347"></a>
+<span class="sourceLineNo">348</span>      // unassign region<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      admin.unassign(hri.getRegionName(), true).get();<a name="line.349"></a>
+<span class="sourceLineNo">350</span>      am.waitForAssignment(hri);<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      assertTrue(regionStates.getRegionState(hri).isOpened());<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    } finally {<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      TEST_UTIL.deleteTable(tableName);<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    }<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span>  HRegionInfo createTableAndGetOneRegion(final TableName tableName)<a name="line.357"></a>
+<span class="sourceLineNo">358</span>      throws IOException, InterruptedException {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    desc.addFamily(new HColumnDescriptor(FAMILY));<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    admin.createTable(desc, Bytes.toBytes("A"), Bytes.toBytes("Z"), 5);<a name="line.361"></a>
+<span class="sourceLineNo">362</span><a name="line.362"></a>
+<span class="sourceLineNo">363</span>    // wait till the table is assigned<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    HMaster master = TEST_UTIL.getHBaseCluster().getMaster();<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    long timeoutTime = System.currentTimeMillis() + 3000;<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    while (true) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      List&lt;HRegionInfo&gt; regions =<a name="line.367"></a>
+<span class="sourceLineNo">368</span>          master.getAssignmentManager().getRegionStates().getRegionsOfTable(tableName);<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      if (regions.size() &gt; 3) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>        return regions.get(2);<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      }<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      long now = System.currentTimeMillis();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      if (now &gt; timeoutTime) {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>        fail("Could not find an online region");<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      }<a name="line.375"></a>
+<span class="sourceLineNo">376</span>      Thread.sleep(10);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    }<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>  @Test<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  public void testOfflineRegion() throws Exception {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>    final TableName tableName = TableName.valueOf("testOfflineRegion");<a name="line.382"></a>
+<span class="sourceLineNo">383</span>    try {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      HRegionInfo hri = createTableAndGetOneRegion(tableName);<a name="line.384"></a>
+<span class="sourceLineNo">385</span><a name="line.385"></a>
+<span class="sourceLineNo">386</span>      RegionStates regionStates =<a name="line.386"></a>
+<span class="sourceLineNo">387</span>          TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager().getRegionStates();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      TEST_UTIL.assertRegionOnServer(hri, serverName, 200);<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      admin.offline(hri.getRegionName()).get();<a name="line.390"></a>
+<span class="sourceLineNo">391</span><a name="line.391"></a>
+<span class="sourceLineNo">392</span>      long timeoutTime = System.currentTimeMillis() + 3000;<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      while (true) {<a name="line.393"></a>
+<span class="sourceLineNo">394</span>        if (regionStates.getRegionByStateOfTable(tableName).get(RegionState.State.OFFLINE)<a name="line.394"></a>
+<span class="sourceLineNo">395</span>            .contains(hri))<a name="line.395"></a>
+<span class="sourceLineNo">396</span>          break;<a name="line.396"></a>
+<span class="sourceLineNo">397</span>        long now = System.currentTimeMillis();<a name="line.397"></a>
+<span class="sourceLineNo">398</span>        if (now &gt; timeoutTime) {<a name="line.398"></a>
+<span class="sourceLineNo">399</span>          fail("Failed to offline the region in time");<a name="line.399"></a>
+<span class="sourceLineNo">400</span>          break;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>        }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>        Thread.sleep(10);<a name="line.402"></a>
+<span class="sourceLineNo">403</span>      }<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      RegionState regionState = regionStates.getRegionState(hri);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>      assertTrue(regionState.isOffline());<a name="line.405"></a>
+<span class="sourceLineNo">406</span>    } finally {<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      TEST_UTIL.deleteTable(tableName);<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    }<a name="line.408"></a>
+<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span>  @Test<a name="line.411"></a>
+<span class="sourceLineNo">412</span>  public void testMoveRegion() throws Exception {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    final TableName tableName = TableName.valueOf("testMoveRegion");<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    try {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      HRegionInfo hri = createTableAndGetOneRegion(tableName);<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>      HMaster master = TEST_UTIL.getHBaseCluster().getMaster();<a name="line.417"></a>
+<span class="sourceLineNo">418</span>      RegionStates regionStates = master.getAssignmentManager().getRegionStates();<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      ServerName serverName = regionStates.getRegionServerOfRegion(hri);<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      ServerManager serverManager = master.getServerManager();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      ServerName destServerName = null;<a name="line.421"></a>
+<span class="sourceLineNo">422</span>      List&lt;JVMClusterUtil.RegionServerThread&gt; regionServers =<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          TEST_UTIL.getHBaseCluster().getLiveRegionServerThreads();<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      for (JVMClusterUtil.RegionServerThread regionServer : regionServers) {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>        HRegionServer destServer = regionServer.getRegionServer();<a name="line.425"></a>
+<span class="sourceLineNo">426</span>        destServerName = destServer.getServerName();<a name="line.426"></a>
+<span class="sourceLineNo">427</span>        if (!destServerName.equals(serverName) &amp;&amp; serverManager.isServerOnline(destServerName)) {<a name="line.427"></a>
+<span class="sourceLineNo">428</span>          break;<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>      assertTrue(destServerName != null &amp;&amp; !destServerName.equals(serverName));<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      admin.move(hri.getEncodedNameAsBytes(), Bytes.toBytes(destServerName.getServerName())).get();<a name="line.432"></a>
+<span class="sourceLineNo">433</span><a name="line.433"></a>
+<span class="sourceLineNo">434</span>      long timeoutTime = System.currentTimeMillis() + 30000;<a name="line.434"></a>
+<span class="sourceLineNo">435</span>      while (true) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>        ServerName sn = regionStates.getRegionServerOfRegion(hri);<a name="line.436"></a>
+<span class="sourceLineNo">437</span>        if (sn != null &amp;&amp; sn.equals(destServerName)) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>          TEST_UTIL.assertRegionOnServer(hri, sn, 200);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>          break;<a name="line.439"></a>
+<span class="sourceLineNo">440</span>        }<a name="line.440"></a>
+<span class="sourceLineNo">441</span>        long now = System.currentTimeMillis();<a name="line.441"></a>
+<span class="sourceLineNo">442</span>        if (now &gt; timeoutTime) {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>          fail("Failed to move the region in time: " + regionStates.getRegionState(hri));<a name="line.443"></a>
+<span class="sourceLineNo">444</span>        }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>        regionStates.waitForUpdate(50);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>      }<a name="line.446"></a>
+<span class="sourceLineNo">447</span>    } finally {<a name="line.447"></a>
+<span class="sourceLineNo">448</span>      TEST_UTIL.deleteTable(tableName);<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    }<a name="line.449"></a>
+<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
+<span class="sourceLineNo">451</span><a name="line.451"></a>
+<span class="sourceLineNo">452</span>  @Test<a name="line.452"></a>
+<span class="sourceLineNo">453</span>  public void testGetOnlineRegions() throws Exception {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>    final TableName tableName = TableName.valueOf("testGetOnlineRegions");<a name="line.454"></a>
+<span class="sourceLineNo">455</span>    try {<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      createTableAndGetOneRegion(tableName);<a name="line.456"></a>
+<span class="sourceLineNo">457</span>      AtomicInteger regionServerCount = new AtomicInteger(0);<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      TEST_UTIL.getHBaseCluster().getLiveRegionServerThreads().stream()<a name="line.458"></a>
+<span class="sourceLineNo">459</span>          .map(rsThread -&gt; rsThread.getRegionServer().getServerName()).forEach(serverName -&gt; {<a name="line.459"></a>
+<span class="sourceLineNo">460</span>            try {<a name="line.460"></a>
+<span class="sourceLineNo">461</span>              Assert.assertEquals(admin.getOnlineRegions(serverName).get().size(),<a name="line.461"></a>
+<span class="sourceLineNo">462</span>                TEST_UTIL.getAdmin().getOnlineRegions(serverName).size());<a name="line.462"></a>
+<span class="sourceLineNo">463</span>            } catch (Exception e) {<a name="line.463"></a>
+<span class="sourceLineNo">464</span>              fail("admin.getOnlineRegions() method throws a exception: " + e.getMessage());<a name="line.464"></a>
+<span class="sourceLineNo">465</span>            }<a name="line.465"></a>
+<span class="sourceLineNo">466</span>            regionServerCount.incrementAndGet();<a name="line.466"></a>
+<span class="sourceLineNo">467</span>          });<a name="line.467"></a>
+<span class="sourceLineNo">468</span>      Assert.assertEquals(regionServerCount.get(), 2);<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    } finally {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      TEST_UTIL.deleteTable(tableName);<a name="line.470"></a>
+<span class="sourceLineNo">471</span>    }<a name="line.471"></a>
+<span class="sourceLineNo">472</span>  }<a name="line.472"></a>
+<span class="sourceLineNo">473</span><a name="line.473"></a>
+<span class="sourceLineNo">474</span>  @Test<a name="line.474"></a>
+<span class="sourceLineNo">475</span>  public void testFlushTableAndRegion() throws Exception {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    final TableName tableName = TableName.valueOf("testFlushRegion");<a name="line.476"></a>
+<span class="sourceLineNo">477</span>    try {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>      HRegionInfo hri = createTableAndGetOneRegion(tableName);<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      ServerName serverName = TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager()<a name="line.479"></a>
+<span class="sourceLineNo">480</span>          .getRegionStates().getRegionServerOfRegion(hri);<a name="line.480"></a>
+<span class="sourceLineNo">481</span>      HRegionServer regionServer = TEST_UTIL.getHBaseCluster().getLiveRegionServerThreads().stream()<a name="line.481"></a>
+<span class="sourceLineNo">482</span>          .map(rsThread -&gt; rsThread.getRegionServer())<a name="line.482"></a>
+<span class="sourceLineNo">483</span>          .filter(rs -&gt; rs.getServerName().equals(serverName)).findFirst().get();<a name="line.483"></a>
+<span class="sourceLineNo">484</span>      // write a put into the specific region<a name="line.484"></a>
+<span class="sourceLineNo">485</span>      try (Table table = TEST_UTIL.getConnection().getTable(tableName)) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>        table.put(new Put(hri.getStartKey()).addColumn(FAMILY, FAMILY_0, Bytes.toBytes("value-1")));<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      }<a name="line.487"></a>
+<span class="sourceLineNo">488</span>      Assert.assertTrue(regionServer.getOnlineRegion(hri.getRegionName()).getMemstoreSize() &gt; 0);<a name="line.488"></a>
+<span class="sourceLineNo">489</span>      // flush region and wait flush operation finished.<a name="line.489"></a>
+<span class="sourceLineNo">490</span>      LOG.info("flushing region: " + Bytes.toStringBinary(hri.getRegionName()));<a name="line.490"></a>
+<span class="sourceLineNo">491</span>      admin.flushRegion(hri.getRegionName()).get();<a name="line.491"></a>
+<span class="sourceLineNo">492</span>      LOG.info("blocking until flush is complete: " + Bytes.toStringBinary(hri.getRegionName()));<a name="line.492"></a>
+<span class="sourceLineNo">493</span>      Threads.sleepWithoutInterrupt(500);<a name="line.493"></a>
+<span class="sourceLineNo">494</span>      while (regionServer.getOnlineRegion(hri.getRegionName()).getMemstoreSize() &gt; 0) {<a name="line.494"></a>
+<span class="sourceLineNo">495</span>        Threads.sleep(50);<a name="line.495"></a>
+<span class="sourceLineNo">496</span>      }<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      // check the memstore.<a name="line.497"></a>
+<span class="sourceLineNo">498</span>      Assert.assertEquals(regionServer.getOnlineRegion(hri.getRegionName()).getMemstoreSize(), 0);<a name="l

<TRUNCATED>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-archetypes/hbase-client-project/dependencies.html
index 1339fbc..5e0f68c 100644
--- a/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-client-project/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-05-04 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-05-05 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-05-04</span>
+        <span id="publishDate">Last Published: 2017-05-05</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>
@@ -4070,7 +4070,7 @@ built on Jackson JSON processor</p>
 <th>Sealed</th></tr>
 <tr class="a">
 <td>150</td>
-<td>70.53 MB</td>
+<td>70.54 MB</td>
 <td>35,651</td>
 <td>31,647</td>
 <td>1,529</td>
@@ -4088,7 +4088,7 @@ built on Jackson JSON processor</p>
 <td>compile: 1</td></tr>
 <tr class="a">
 <td>test: 70</td>
-<td>test: 38.36 MB</td>
+<td>test: 38.37 MB</td>
 <td>test: 13,539</td>
 <td>test: 11,825</td>
 <td>test: 536</td>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index bd97307..73a2a5b 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-05-04 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-05-05 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-05-04</span>
+        <span id="publishDate">Last Published: 2017-05-05</span>
                   &nbsp;| <span id="projectVersion">Version: 2.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>
@@ -4112,7 +4112,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>compile: 1</td></tr>
 <tr class="b">
 <td>test: 70</td>
-<td>test: 38.36 MB</td>
+<td>test: 38.37 MB</td>
 <td>test: 13,539</td>
 <td>test: 11,825</td>
 <td>test: 536</td>

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html b/devapidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html
index 5692d87..c640f94 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/AsyncAdmin.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":6,"i50":6,"i51":6,"i52":6,"i53":6,"i54":6,"i55":6,"i56":6,"i57":6,"i58":6,"i59":6,"i60":6,"i61":6,"i62":6,"i63":6,"i64":6,"i65":6,"i66":6,"i67":6,"i68":6,"i69":6,"i70":6,"i71":6,"i72":6,"i73":6,"i74":6,"i75":6,"i76":6,"i77":6,"i78":6,"i79":6,"i80":6,"i81":6,"i82":6,"i83":6,"i84":6,"i85":6,"i86":6,"i87":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6,"i48":6,"i49":6,"i50":6,"i51":6,"i52":6,"i53":6,"i54":6,"i55":6,"i56":6,"i57":6,"i58":6,"i59":6,"i60":6,"i61":6,"i62":6,"i63":6,"i64":6,"i65":6,"i66":6,"i67":6,"i68":6,"i69":6,"i70":6,"i71":6,"i72":6,"i73":6,"i74":6,"i75":6,"i76":6,"i77":6,"i78":6,"i79":6,"i80":6,"i81":6,"i82":6,"i83":6,"i84":6,"i85":6,"i86":6,"i87":6,"i88":6,"i89":6,"i90":6,"i91":6,"i92":6,"i93":6,"i94":6,"i95":6,"i96":6,"i97":6,"i98":6,"i99":6,"i100":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -210,24 +210,56 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 </tr>
 <tr id="i12" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#compact-org.apache.hadoop.hbase.TableName-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Compact a table.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+       byte[]&nbsp;columnFamily)</code>
+<div class="block">Compact a column family within a table.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#compactRegion-byte:A-">compactRegion</a></span>(byte[]&nbsp;regionName)</code>
+<div class="block">Compact an individual region.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#compactRegion-byte:A-byte:A-">compactRegion</a></span>(byte[]&nbsp;regionName,
+             byte[]&nbsp;columnFamily)</code>
+<div class="block">Compact a column family within a region.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-">compactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Compact all regions on the region server.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-">createNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;descriptor)</code>
 <div class="block">Create a new namespace.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc)</code>
 <div class="block">Creates a new table.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[][]&nbsp;splitKeys)</code>
 <div class="block">Creates a new table with an initial set of empty regions defined by the specified split keys.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#createTable-org.apache.hadoop.hbase.client.TableDescriptor-byte:A-byte:A-int-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;desc,
            byte[]&nbsp;startKey,
@@ -236,56 +268,56 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <div class="block">Creates a new table with the specified number of regions.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteColumnFamily-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumnFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   byte[]&nbsp;columnFamily)</code>
 <div class="block">Delete a column family from a table.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteNamespace-java.lang.String-">deleteNamespace</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Delete an existing namespace.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteSnapshot-java.lang.String-">deleteSnapshot</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName)</code>
 <div class="block">Delete an existing snapshot.</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteSnapshots-java.util.regex.Pattern-">deleteSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Delete existing snapshots whose names match the pattern passed.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteSnapshots-java.lang.String-">deleteSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Delete existing snapshots whose names match the pattern passed.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteTable-org.apache.hadoop.hbase.TableName-">deleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Deletes a table.</div>
 </td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteTables-java.util.regex.Pattern-">deleteTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Delete tables matching the passed in pattern and wait on completion.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteTables-java.lang.String-">deleteTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Deletes tables matching the passed in pattern and wait on completion.</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteTableSnapshots-java.util.regex.Pattern-java.util.regex.Pattern-">deleteTableSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;tableNamePattern,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;snapshotNamePattern)</code>
@@ -293,7 +325,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
  name regular expression.</div>
 </td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteTableSnapshots-java.lang.String-java.lang.String-">deleteTableSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableNameRegex,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotNameRegex)</code>
@@ -301,55 +333,55 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
  name regular expression.</div>
 </td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#disableReplicationPeer-java.lang.String-">disableReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Stop the replication stream to the specified peer</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#disableTable-org.apache.hadoop.hbase.TableName-">disableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Disable a table.</div>
 </td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#disableTables-java.util.regex.Pattern-">disableTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Disable tables matching the passed in pattern.</div>
 </td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#disableTables-java.lang.String-">disableTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Disable tables matching the passed in pattern.</div>
 </td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i35" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#enableReplicationPeer-java.lang.String-">enableReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Restart the replication stream to the specified peer</div>
 </td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i36" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#enableTable-org.apache.hadoop.hbase.TableName-">enableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Enable a table.</div>
 </td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i37" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#enableTables-java.util.regex.Pattern-">enableTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Enable tables matching the passed in pattern.</div>
 </td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i38" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#enableTables-java.lang.String-">enableTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Enable tables matching the passed in pattern.</div>
 </td>
 </tr>
-<tr id="i34" class="altColor">
+<tr id="i39" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#execProcedure-java.lang.String-java.lang.String-java.util.Map-">execProcedure</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;signature,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
@@ -357,7 +389,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <div class="block">Execute a distributed procedure on a cluster.</div>
 </td>
 </tr>
-<tr id="i35" class="rowColor">
+<tr id="i40" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;byte[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#execProcedureWithRet-java.lang.String-java.lang.String-java.util.Map-">execProcedureWithRet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;signature,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
@@ -365,48 +397,66 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <div class="block">Execute a distributed procedure on a cluster.</div>
 </td>
 </tr>
-<tr id="i36" class="altColor">
+<tr id="i41" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#flush-org.apache.hadoop.hbase.TableName-">flush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Flush a table.</div>
+</td>
+</tr>
+<tr id="i42" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#flushRegion-byte:A-">flushRegion</a></span>(byte[]&nbsp;regionName)</code>
+<div class="block">Flush an individual region.</div>
+</td>
+</tr>
+<tr id="i43" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getAlterStatus-org.apache.hadoop.hbase.TableName-">getAlterStatus</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Get the status of alter command - indicates how many regions have received the updated schema
  Asynchronous operation.</div>
 </td>
 </tr>
-<tr id="i37" class="rowColor">
+<tr id="i44" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html" title="class in org.apache.hadoop.hbase.client">AsyncConnectionImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getConnection--">getConnection</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i38" class="altColor">
+<tr id="i45" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getNamespaceDescriptor-java.lang.String-">getNamespaceDescriptor</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
 <div class="block">Get a namespace descriptor by name</div>
 </td>
 </tr>
-<tr id="i39" class="rowColor">
+<tr id="i46" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Get all the online regions on a region server.</div>
+</td>
+</tr>
+<tr id="i47" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getQuota-org.apache.hadoop.hbase.quotas.QuotaFilter-">getQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaFilter.html" title="class in org.apache.hadoop.hbase.quotas">QuotaFilter</a>&nbsp;filter)</code>
 <div class="block">List the quotas based on the filter.</div>
 </td>
 </tr>
-<tr id="i40" class="altColor">
+<tr id="i48" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getReplicationPeerConfig-java.lang.String-">getReplicationPeerConfig</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Returns the configured ReplicationPeerConfig for the specified peer</div>
 </td>
 </tr>
-<tr id="i41" class="rowColor">
+<tr id="i49" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">getTableDescriptor</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Method for getting the tableDescriptor</div>
 </td>
 </tr>
-<tr id="i42" class="altColor">
+<tr id="i50" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#isBalancerEnabled--">isBalancerEnabled</a></span>()</code>
 <div class="block">Query the current state of the balancer.</div>
 </td>
 </tr>
-<tr id="i43" class="rowColor">
+<tr id="i51" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#isProcedureFinished-java.lang.String-java.lang.String-java.util.Map-">isProcedureFinished</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;signature,
                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;instance,
@@ -414,17 +464,17 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <div class="block">Check the current state of the specified procedure.</div>
 </td>
 </tr>
-<tr id="i44" class="altColor">
+<tr id="i52" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#isSnapshotFinished-org.apache.hadoop.hbase.client.SnapshotDescription-">isSnapshotFinished</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Check the current state of the passed snapshot.</div>
 </td>
 </tr>
-<tr id="i45" class="rowColor">
+<tr id="i53" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#isTableAvailable-org.apache.hadoop.hbase.TableName-">isTableAvailable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i46" class="altColor">
+<tr id="i54" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#isTableAvailable-org.apache.hadoop.hbase.TableName-byte:A:A-">isTableAvailable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                 byte[][]&nbsp;splitKeys)</code>
@@ -432,109 +482,109 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
  which was used while creating the given table.</div>
 </td>
 </tr>
-<tr id="i47" class="rowColor">
+<tr id="i55" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#isTableDisabled-org.apache.hadoop.hbase.TableName-">isTableDisabled</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i48" class="altColor">
+<tr id="i56" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#isTableEnabled-org.apache.hadoop.hbase.TableName-">isTableEnabled</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i49" class="rowColor">
+<tr id="i57" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listNamespaceDescriptors--">listNamespaceDescriptors</a></span>()</code>
 <div class="block">List available namespace descriptors</div>
 </td>
 </tr>
-<tr id="i50" class="altColor">
+<tr id="i58" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ProcedureInfo.html" title="class in org.apache.hadoop.hbase">ProcedureInfo</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listProcedures--">listProcedures</a></span>()</code>
 <div class="block">List procedures</div>
 </td>
 </tr>
-<tr id="i51" class="rowColor">
+<tr id="i59" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/replication/TableCFs.html" title="class in org.apache.hadoop.hbase.client.replication">TableCFs</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listReplicatedTableCFs--">listReplicatedTableCFs</a></span>()</code>
 <div class="block">Find all table and column families that are replicated from this cluster</div>
 </td>
 </tr>
-<tr id="i52" class="altColor">
+<tr id="i60" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listReplicationPeers--">listReplicationPeers</a></span>()</code>
 <div class="block">Return a list of replication peers.</div>
 </td>
 </tr>
-<tr id="i53" class="rowColor">
+<tr id="i61" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listReplicationPeers-java.util.regex.Pattern-">listReplicationPeers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">Return a list of replication peers.</div>
 </td>
 </tr>
-<tr id="i54" class="altColor">
+<tr id="i62" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerDescription.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listReplicationPeers-java.lang.String-">listReplicationPeers</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">Return a list of replication peers.</div>
 </td>
 </tr>
-<tr id="i55" class="rowColor">
+<tr id="i63" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listSnapshots--">listSnapshots</a></span>()</code>
 <div class="block">List completed snapshots.</div>
 </td>
 </tr>
-<tr id="i56" class="altColor">
+<tr id="i64" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listSnapshots-java.util.regex.Pattern-">listSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern)</code>
 <div class="block">List all the completed snapshots matching the given pattern.</div>
 </td>
 </tr>
-<tr id="i57" class="rowColor">
+<tr id="i65" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listSnapshots-java.lang.String-">listSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex)</code>
 <div class="block">List all the completed snapshots matching the given regular expression.</div>
 </td>
 </tr>
-<tr id="i58" class="altColor">
+<tr id="i66" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTableNames--">listTableNames</a></span>()</code>
 <div class="block">List all of the names of userspace tables.</div>
 </td>
 </tr>
-<tr id="i59" class="rowColor">
+<tr id="i67" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTableNames-java.util.regex.Pattern-boolean-">listTableNames</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
               boolean&nbsp;includeSysTables)</code>
 <div class="block">List all of the names of userspace tables.</div>
 </td>
 </tr>
-<tr id="i60" class="altColor">
+<tr id="i68" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTableNames-java.lang.String-boolean-">listTableNames</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
               boolean&nbsp;includeSysTables)</code>
 <div class="block">List all of the names of userspace tables.</div>
 </td>
 </tr>
-<tr id="i61" class="rowColor">
+<tr id="i69" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTables--">listTables</a></span>()</code>
 <div class="block">List all the userspace tables.</div>
 </td>
 </tr>
-<tr id="i62" class="altColor">
+<tr id="i70" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTables-java.util.regex.Pattern-boolean-">listTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;pattern,
           boolean&nbsp;includeSysTables)</code>
 <div class="block">List all the tables matching the given pattern.</div>
 </td>
 </tr>
-<tr id="i63" class="rowColor">
+<tr id="i71" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>[]&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTables-java.lang.String-boolean-">listTables</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regex,
           boolean&nbsp;includeSysTables)</code>
 <div class="block">List all the tables matching the given pattern.</div>
 </td>
 </tr>
-<tr id="i64" class="altColor">
+<tr id="i72" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTableSnapshots-java.util.regex.Pattern-java.util.regex.Pattern-">listTableSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;tableNamePattern,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html?is-external=true" title="class or interface in java.util.regex">Pattern</a>&nbsp;snapshotNamePattern)</code>
@@ -542,7 +592,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
  name regular expression.</div>
 </td>
 </tr>
-<tr id="i65" class="rowColor">
+<tr id="i73" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&gt;&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#listTableSnapshots-java.lang.String-java.lang.String-">listTableSnapshots</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableNameRegex,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotNameRegex)</code>
@@ -550,7 +600,39 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
  name regular expression.</div>
 </td>
 </tr>
-<tr id="i66" class="altColor">
+<tr id="i74" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Major compact a table.</div>
+</td>
+</tr>
+<tr id="i75" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+            byte[]&nbsp;columnFamily)</code>
+<div class="block">Major compact a column family within a table.</div>
+</td>
+</tr>
+<tr id="i76" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompactRegion-byte:A-">majorCompactRegion</a></span>(byte[]&nbsp;regionName)</code>
+<div class="block">Major compact a table or an individual region.</div>
+</td>
+</tr>
+<tr id="i77" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompactRegion-byte:A-byte:A-">majorCompactRegion</a></span>(byte[]&nbsp;regionName,
+                  byte[]&nbsp;columnFamily)</code>
+<div class="block">Major compact a column family within region.</div>
+</td>
+</tr>
+<tr id="i78" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompactRegionServer-org.apache.hadoop.hbase.ServerName-">majorCompactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Compact all regions on the region server.</div>
+</td>
+</tr>
+<tr id="i79" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#mergeRegions-byte:A-byte:A-boolean-">mergeRegions</a></span>(byte[]&nbsp;nameOfRegionA,
             byte[]&nbsp;nameOfRegionB,
@@ -558,84 +640,84 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <div class="block">Merge two regions.</div>
 </td>
 </tr>
-<tr id="i67" class="rowColor">
+<tr id="i80" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#modifyColumnFamily-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.HColumnDescriptor-">modifyColumnFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../org/apache/hadoop/hbase/HColumnDescriptor.html" title="class in org.apache.hadoop.hbase">HColumnDescriptor</a>&nbsp;columnFamily)</code>
 <div class="block">Modify an existing column family on a table.</div>
 </td>
 </tr>
-<tr id="i68" class="altColor">
+<tr id="i81" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#modifyNamespace-org.apache.hadoop.hbase.NamespaceDescriptor-">modifyNamespace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;descriptor)</code>
 <div class="block">Modify an existing namespace.</div>
 </td>
 </tr>
-<tr id="i69" class="rowColor">
+<tr id="i82" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#move-byte:A-byte:A-">move</a></span>(byte[]&nbsp;regionName,
     byte[]&nbsp;destServerName)</code>
 <div class="block">Move the region <code>r</code> to <code>dest</code>.</div>
 </td>
 </tr>
-<tr id="i70" class="altColor">
+<tr id="i83" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#offline-byte:A-">offline</a></span>(byte[]&nbsp;regionName)</code>
 <div class="block">Offline specified region from master's in-memory state.</div>
 </td>
 </tr>
-<tr id="i71" class="rowColor">
+<tr id="i84" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#removeReplicationPeer-java.lang.String-">removeReplicationPeer</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId)</code>
 <div class="block">Remove a peer and stop the replication</div>
 </td>
 </tr>
-<tr id="i72" class="altColor">
+<tr id="i85" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#removeReplicationPeerTableCFs-java.lang.String-java.util.Map-">removeReplicationPeerTableCFs</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;id,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,? extends <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&gt;&nbsp;tableCfs)</code>
 <div class="block">Remove some table-cfs from config of the specified peer</div>
 </td>
 </tr>
-<tr id="i73" class="rowColor">
+<tr id="i86" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#restoreSnapshot-java.lang.String-">restoreSnapshot</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName)</code>
 <div class="block">Restore the specified snapshot on the original table.</div>
 </td>
 </tr>
-<tr id="i74" class="altColor">
+<tr id="i87" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#restoreSnapshot-java.lang.String-boolean-">restoreSnapshot</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName,
                boolean&nbsp;takeFailSafeSnapshot)</code>
 <div class="block">Restore the specified snapshot on the original table.</div>
 </td>
 </tr>
-<tr id="i75" class="rowColor">
+<tr id="i88" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#setBalancerRunning-boolean-">setBalancerRunning</a></span>(boolean&nbsp;on)</code>
 <div class="block">Turn the load balancer on or off.</div>
 </td>
 </tr>
-<tr id="i76" class="altColor">
+<tr id="i89" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#setQuota-org.apache.hadoop.hbase.quotas.QuotaSettings-">setQuota</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&nbsp;quota)</code>
 <div class="block">Apply the new quota settings.</div>
 </td>
 </tr>
-<tr id="i77" class="rowColor">
+<tr id="i90" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#snapshot-org.apache.hadoop.hbase.client.SnapshotDescription-">snapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotDescription.html" title="class in org.apache.hadoop.hbase.client">SnapshotDescription</a>&nbsp;snapshot)</code>
 <div class="block">Take a snapshot and wait for the server to complete that snapshot asynchronously.</div>
 </td>
 </tr>
-<tr id="i78" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#snapshot-java.lang.String-org.apache.hadoop.hbase.TableName-">snapshot</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName,
         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Take a snapshot for the given table.</div>
 </td>
 </tr>
-<tr id="i79" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#snapshot-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.SnapshotType-">snapshot</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName,
         <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -643,51 +725,51 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 <div class="block">Create typed snapshot of the table.</div>
 </td>
 </tr>
-<tr id="i80" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#split-org.apache.hadoop.hbase.TableName-">split</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Split a table.</div>
 </td>
 </tr>
-<tr id="i81" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#split-org.apache.hadoop.hbase.TableName-byte:A-">split</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
      byte[]&nbsp;splitPoint)</code>
 <div class="block">Split a table.</div>
 </td>
 </tr>
-<tr id="i82" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#splitRegion-byte:A-">splitRegion</a></span>(byte[]&nbsp;regionName)</code>
 <div class="block">Split an individual region.</div>
 </td>
 </tr>
-<tr id="i83" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#splitRegion-byte:A-byte:A-">splitRegion</a></span>(byte[]&nbsp;regionName,
            byte[]&nbsp;splitPoint)</code>
 <div class="block">Split an individual region.</div>
 </td>
 </tr>
-<tr id="i84" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#tableExists-org.apache.hadoop.hbase.TableName-">tableExists</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i85" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#truncateTable-org.apache.hadoop.hbase.TableName-boolean-">truncateTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
              boolean&nbsp;preserveSplits)</code>
 <div class="block">Truncate a table.</div>
 </td>
 </tr>
-<tr id="i86" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#unassign-byte:A-boolean-">unassign</a></span>(byte[]&nbsp;regionName,
         boolean&nbsp;force)</code>
 <div class="block">Unassign a region from current hosting regionserver.</div>
 </td>
 </tr>
-<tr id="i87" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#updateReplicationPeerConfig-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">updateReplicationPeerConfig</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;peerId,
                            <a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeerConfig.html" title="class in org.apache.hadoop.hbase.replication">ReplicationPeerConfig</a>&nbsp;peerConfig)</code>
@@ -1445,13 +1527,203 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/client
 </dl>
 </li>
 </ul>
+<a name="getOnlineRegions-org.apache.hadoop.hbase.ServerName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOnlineRegions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.411">getOnlineRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<div class="block">Get all the online regions on a region server.</div>
+</li>
+</ul>
+<a name="flush-org.apache.hadoop.hbase.TableName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flush</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.417">flush</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<div class="block">Flush a table.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - table to flush</dd>
+</dl>
+</li>
+</ul>
+<a name="flushRegion-byte:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>flushRegion</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.423">flushRegion</a>(byte[]&nbsp;regionName)</pre>
+<div class="block">Flush an individual region.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>regionName</code> - region to flush</dd>
+</dl>
+</li>
+</ul>
+<a name="compact-org.apache.hadoop.hbase.TableName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compact</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.429">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<div class="block">Compact a table. Asynchronous operation even if CompletableFuture.get().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - table to compact</dd>
+</dl>
+</li>
+</ul>
+<a name="compact-org.apache.hadoop.hbase.TableName-byte:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compact</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.436">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+                                byte[]&nbsp;columnFamily)</pre>
+<div class="block">Compact a column family within a table. Asynchronous operation even if CompletableFuture.get().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - table to compact</dd>
+<dd><code>columnFamily</code> - column family within a table</dd>
+</dl>
+</li>
+</ul>
+<a name="compactRegion-byte:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactRegion</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.442">compactRegion</a>(byte[]&nbsp;regionName)</pre>
+<div class="block">Compact an individual region. Asynchronous operation even if CompletableFuture.get().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>regionName</code> - region to compact</dd>
+</dl>
+</li>
+</ul>
+<a name="compactRegion-byte:A-byte:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactRegion</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/AsyncAdmin.html#line.450">compactRegion</a>(byte[]&nbsp;regionName,
+                                      byte[]&nbsp;columnFamily)</pre>
+<div class="block">Compact a column family within a region. Asynchronous operation even if
+ CompletableFuture.get().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>regionName</code> - region to compact</dd>
+<dd><code>columnFamily</code> - column family within a region</dd>
+</dl>
+</li>
+</ul>
+<a name="majorCompact-org.apache.hadoop.hbase.TableName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>majorCompact</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.con

<TRUNCATED>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 7ae4a0b..b94e0e6 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -438,7 +438,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 8172eb6..e9eae6d 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Continuous Integration</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -296,7 +296,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index c4d9efe..80cf39c 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Tracking</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -293,7 +293,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 04fe56e..0b4b5bf 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project License</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -496,7 +496,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index da85101..d3ad000 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -346,7 +346,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 80a3b8e..5931dea 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -464,7 +464,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 98d0495..2b2a1eb 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -419,7 +419,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index f63096a..5e80b5e 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -441,7 +441,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index fd4582f..dab7c43 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Build Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -376,7 +376,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 4596146..c79e233 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase™</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -774,7 +774,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index c0cb33b..b7a5d7f 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -340,7 +340,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 4107cb5..73f02b7 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -310,7 +310,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index ceaa2a8..e150647 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index b5eaf72..173ab57 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -313,7 +313,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 5118863..7f709c4 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -308,7 +308,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 6c8bd8b..3064519 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 4a10062..5cb72c6 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Repository</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -304,7 +304,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index a8f30fe..7628528 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -338,7 +338,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index fcf5c56..5f831ed 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -525,7 +525,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index e8619a3..d693b46 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Team list</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -799,7 +799,7 @@ window.onLoad = init();
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 018913b..9ba46ee 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -4654,6 +4654,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestIOFencing.CompactionBlockerRegion.html#compactionsWaiting">compactionsWaiting</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestIOFencing.CompactionBlockerRegion.html" title="class in org.apache.hadoop.hbase">TestIOFencing.CompactionBlockerRegion</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#compactionTest-java.lang.String-int-org.apache.hadoop.hbase.client.CompactionState-boolean-">compactionTest(String, int, CompactionState, boolean)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestCompaction.html#compactionThreshold">compactionThreshold</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestCompaction.html" title="class in org.apache.hadoop.hbase.regionserver">TestCompaction</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMajorCompaction.html#compactionThreshold">compactionThreshold</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMajorCompaction.html" title="class in org.apache.hadoop.hbase.regionserver">TestMajorCompaction</a></dt>
@@ -5220,6 +5222,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestDynamicClassLoader.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestDynamicClassLoader.html" title="class in org.apache.hadoop.hbase.util">TestDynamicClassLoader</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSUtils.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSUtils.html" title="class in org.apache.hadoop.hbase.util">TestFSUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckEncryption</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html#conf">conf</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util">TestMiniClusterLoadSequential</a></dt>
@@ -5896,8 +5900,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestIOFencing.CompactionBlockerRegion.html#countStoreFiles--">countStoreFiles()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestIOFencing.CompactionBlockerRegion.html" title="class in org.apache.hadoop.hbase">TestIOFencing.CompactionBlockerRegion</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#countStoreFilesInFamilies-java.util.List-byte:A:A-">countStoreFilesInFamilies(List&lt;Region&gt;, byte[][])</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestCompactionState.html#countStoreFilesInFamilies-java.util.List-byte:A:A-">countStoreFilesInFamilies(List&lt;Region&gt;, byte[][])</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestCompactionState.html" title="class in org.apache.hadoop.hbase.regionserver">TestCompactionState</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#countStoreFilesInFamily-java.util.List-byte:A-">countStoreFilesInFamily(List&lt;Region&gt;, byte[])</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestCompactionState.html#countStoreFilesInFamily-java.util.List-byte:A-">countStoreFilesInFamily(List&lt;Region&gt;, byte[])</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestCompactionState.html" title="class in org.apache.hadoop.hbase.regionserver">TestCompactionState</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TestDistributedLogSplitting.html#countWAL-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.conf.Configuration-">countWAL(Path, FileSystem, Configuration)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestDistributedLogSplitting.html" title="class in org.apache.hadoop.hbase.master">TestDistributedLogSplitting</a></dt>
@@ -11107,6 +11115,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestSnapshotManifest.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestSnapshotManifest.html" title="class in org.apache.hadoop.hbase.snapshot">TestSnapshotManifest</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSUtils.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSUtils.html" title="class in org.apache.hadoop.hbase.util">TestFSUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSVisitor.html#fs">fs</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util">TestFSVisitor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.html#FS">FS</a></span> - Static variable in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/TestBoundedRegionGroupingStrategy.html" title="class in org.apache.hadoop.hbase.wal">TestBoundedRegionGroupingStrategy</a></dt>
@@ -15516,6 +15526,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#HTU">HTU</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSHDFSUtils.html" title="class in org.apache.hadoop.hbase.util">TestFSHDFSUtils</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSUtils.html#htu">htu</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSUtils.html" title="class in org.apache.hadoop.hbase.util">TestFSUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#HTU2">HTU2</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestReplicaWithCluster.html" title="class in org.apache.hadoop.hbase.client">TestReplicaWithCluster</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/IntegrationTestIngestWithACL.html#HYPHEN">HYPHEN</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/IntegrationTestIngestWithACL.html" title="class in org.apache.hadoop.hbase">IntegrationTestIngestWithACL</a></dt>
@@ -17987,6 +17999,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALLoaderPerformanceEvaluation.LoadCounter.html#LoadCounter--">LoadCounter()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/ProcedureWALLoaderPerformanceEvaluation.LoadCounter.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">ProcedureWALLoaderPerformanceEvaluation.LoadCounter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#loadData-org.apache.hadoop.hbase.client.Table-byte:A:A-int-int-">loadData(Table, byte[][], int, int)</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html#loadData-org.apache.hadoop.hbase.client.Table-byte:A...-">loadData(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>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html#loadData-org.apache.hadoop.hbase.client.Table-byte:A...-">loadData(Table, byte[]...)</a></span> - Method 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>
@@ -26200,6 +26214,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.html#random">random</a></span> - Variable in class org.apache.hadoop.hbase.chaos.actions.<a href="org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.html" title="class in org.apache.hadoop.hbase.chaos.actions">TruncateTableAction</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#RANDOM">RANDOM</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html#RANDOM">RANDOM</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts.RandomTimeoutBlockingRpcChannel</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestFastFail.html#random">random</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>
@@ -30861,6 +30877,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#setup--">setup()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSHDFSUtils.html" title="class in org.apache.hadoop.hbase.util">TestFSHDFSUtils</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSUtils.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSUtils.html" title="class in org.apache.hadoop.hbase.util">TestFSUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestFSVisitor.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestFSVisitor.html" title="class in org.apache.hadoop.hbase.util">TestFSVisitor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html" title="class in org.apache.hadoop.hbase.util">TestHBaseFsckEncryption</a></dt>
@@ -39361,6 +39379,10 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/compactions/TestCompactor.StoreFileWritersCapture.Writer.html" title="class in org.apache.hadoop.hbase.regionserver.compactions"><span class="typeNameLink">TestCompactor.StoreFileWritersCapture.Writer</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/compactions/package-summary.html">org.apache.hadoop.hbase.regionserver.compactions</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testCompactRegionServer--">testCompactRegionServer()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testCompactRpcAPI--">testCompactRpcAPI()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/TestCompactSplitThread.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCompactSplitThread</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestCompactSplitThread.html#TestCompactSplitThread--">TestCompactSplitThread()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestCompactSplitThread.html" title="class in org.apache.hadoop.hbase.regionserver">TestCompactSplitThread</a></dt>
@@ -41929,6 +41951,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestReplicasClient.html#testFlushTable--">testFlushTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestReplicasClient.html" title="class in org.apache.hadoop.hbase.client">TestReplicasClient</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testFlushTableAndRegion--">testFlushTableAndRegion()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.html#testFlushTableSnapshot--">testFlushTableSnapshot()</a></span> - Method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.snapshot">TestFlushSnapshotFromClient</a></dt>
 <dd>
 <div class="block">Test simple flush snapshotting a table that is online</div>
@@ -42603,6 +42627,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.html#testGetOneRandomRack--">testGetOneRandomRack()</a></span> - Method in class org.apache.hadoop.hbase.favored.<a href="org/apache/hadoop/hbase/favored/TestFavoredNodeAssignmentHelper.html" title="class in org.apache.hadoop.hbase.favored">TestFavoredNodeAssignmentHelper</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testGetOnlineRegions--">testGetOnlineRegions()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionReplicas.html#testGetOnTargetRegionReplica--">testGetOnTargetRegionReplica()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionReplicas.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionReplicas</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestHCM.html#testGetOperationTimeout--">testGetOperationTimeout()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestHCM.html" title="class in org.apache.hadoop.hbase.client">TestHCM</a></dt>


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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index a7506e9..f5e5a86 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -166,8 +166,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 a76a3b1..411342e 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "2.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "2de6b051f67b6a55eda8d4e247328fda24484adb";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "2026540ea347e9359e6ac8cf8b3701cd3872a515";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Thu May  4 14:39:02 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Fri May  5 14:38:49 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "f7cfe544cca51d154aee357b8d8e159d";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "54f389bd1b972e2318608b4907b1209d";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


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

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


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

Branch: refs/heads/asf-site
Commit: e2c783b2ddd7fe052b736801e383eff405618ecb
Parents: 02b3350
Author: jenkins <bu...@apache.org>
Authored: Fri May 5 14:58:21 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Fri May 5 14:58:21 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 apache_hbase_reference_guide.pdfmarks           |     4 +-
 .../hbase/mapreduce/TableMapReduceUtil.html     |     6 +-
 .../hbase/mapreduce/TableMapReduceUtil.html     |   473 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 29312 +++++++++--------
 checkstyle.rss                                  |     4 +-
 coc.html                                        |     4 +-
 cygwin.html                                     |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/constant-values.html                 |    25 +-
 devapidocs/index-all.html                       |    98 +
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../hadoop/hbase/class-use/HRegionInfo.html     |    49 +-
 .../hadoop/hbase/class-use/HRegionLocation.html |    16 +-
 .../hadoop/hbase/class-use/ServerName.html      |    46 +-
 .../hadoop/hbase/class-use/TableName.html       |   251 +-
 .../hbase/classification/package-tree.html      |     8 +-
 .../apache/hadoop/hbase/client/AsyncAdmin.html  |   514 +-
 ...dmin.AddColumnFamilyProcedureBiConsumer.html |     6 +-
 .../client/AsyncHBaseAdmin.AdminRpcCall.html    |     4 +-
 .../hbase/client/AsyncHBaseAdmin.Converter.html |     4 +-
 ...dmin.CreateNamespaceProcedureBiConsumer.html |     6 +-
 ...aseAdmin.CreateTableProcedureBiConsumer.html |     6 +-
 ...n.DeleteColumnFamilyProcedureBiConsumer.html |     6 +-
 ...dmin.DeleteNamespaceProcedureBiConsumer.html |     6 +-
 ...aseAdmin.DeleteTableProcedureBiConsumer.html |     8 +-
 ...seAdmin.DisableTableProcedureBiConsumer.html |     6 +-
 ...aseAdmin.EnableTableProcedureBiConsumer.html |     6 +-
 .../client/AsyncHBaseAdmin.MasterRpcCall.html   |     4 +-
 ...min.MergeTableRegionProcedureBiConsumer.html |     6 +-
 ...n.ModifyColumnFamilyProcedureBiConsumer.html |     6 +-
 ...dmin.ModifyNamespaceProcedureBiConsumer.html |     6 +-
 ...HBaseAdmin.NamespaceProcedureBiConsumer.html |    14 +-
 .../AsyncHBaseAdmin.ProcedureBiConsumer.html    |    12 +-
 .../client/AsyncHBaseAdmin.TableOperator.html   |     4 +-
 ...syncHBaseAdmin.TableProcedureBiConsumer.html |    14 +-
 ...eAdmin.TruncateTableProcedureBiConsumer.html |     6 +-
 .../hadoop/hbase/client/AsyncHBaseAdmin.html    |   856 +-
 .../hbase/client/class-use/CompactType.html     |    29 +-
 .../hadoop/hbase/client/package-tree.html       |    24 +-
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |    10 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     4 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hbase/mapreduce/TableMapReduceUtil.html     |    16 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../hadoop/hbase/master/package-tree.html       |     6 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    12 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/quotas/package-tree.html       |     4 +-
 .../CompactSplitThread.CompactionRunner.html    |    27 +-
 .../CompactSplitThread.Rejection.html           |     6 +-
 .../hbase/regionserver/CompactSplitThread.html  |    16 +-
 .../hadoop/hbase/regionserver/package-tree.html |    22 +-
 .../regionserver/querymatcher/package-tree.html |     4 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   270 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   108 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    54 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |   120 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    48 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    24 +-
 .../apache/hadoop/hbase/util/package-tree.html  |     8 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../apache/hadoop/hbase/client/AsyncAdmin.html  |   835 +-
 ...dmin.AddColumnFamilyProcedureBiConsumer.html |  4408 +--
 .../client/AsyncHBaseAdmin.AdminRpcCall.html    |  4408 +--
 .../hbase/client/AsyncHBaseAdmin.Converter.html |  4408 +--
 ...dmin.CreateNamespaceProcedureBiConsumer.html |  4408 +--
 ...aseAdmin.CreateTableProcedureBiConsumer.html |  4408 +--
 ...n.DeleteColumnFamilyProcedureBiConsumer.html |  4408 +--
 ...dmin.DeleteNamespaceProcedureBiConsumer.html |  4408 +--
 ...aseAdmin.DeleteTableProcedureBiConsumer.html |  4408 +--
 ...seAdmin.DisableTableProcedureBiConsumer.html |  4408 +--
 ...aseAdmin.EnableTableProcedureBiConsumer.html |  4408 +--
 .../client/AsyncHBaseAdmin.MasterRpcCall.html   |  4408 +--
 ...min.MergeTableRegionProcedureBiConsumer.html |  4408 +--
 ...n.ModifyColumnFamilyProcedureBiConsumer.html |  4408 +--
 ...dmin.ModifyNamespaceProcedureBiConsumer.html |  4408 +--
 ...HBaseAdmin.NamespaceProcedureBiConsumer.html |  4408 +--
 .../AsyncHBaseAdmin.ProcedureBiConsumer.html    |  4408 +--
 .../client/AsyncHBaseAdmin.TableOperator.html   |  4408 +--
 ...syncHBaseAdmin.TableProcedureBiConsumer.html |  4408 +--
 ...eAdmin.TruncateTableProcedureBiConsumer.html |  4408 +--
 .../hadoop/hbase/client/AsyncHBaseAdmin.html    |  4408 +--
 .../hbase/mapreduce/TableMapReduceUtil.html     |   473 +-
 .../CompactSplitThread.CompactionRunner.html    |   503 +-
 .../CompactSplitThread.Rejection.html           |   503 +-
 .../hbase/regionserver/CompactSplitThread.html  |   503 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   270 +-
 .../tmpl/master/MasterStatusTmpl.Intf.html      |   270 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   270 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    76 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |   120 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |   120 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |   120 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    36 +-
 export_control.html                             |     4 +-
 hbase-annotations/checkstyle.html               |     6 +-
 hbase-annotations/dependencies.html             |     6 +-
 hbase-annotations/dependency-convergence.html   |     6 +-
 hbase-annotations/dependency-info.html          |     6 +-
 hbase-annotations/dependency-management.html    |     6 +-
 hbase-annotations/index.html                    |     6 +-
 hbase-annotations/integration.html              |     6 +-
 hbase-annotations/issue-tracking.html           |     6 +-
 hbase-annotations/license.html                  |     6 +-
 hbase-annotations/mail-lists.html               |     6 +-
 hbase-annotations/plugin-management.html        |     6 +-
 hbase-annotations/plugins.html                  |     6 +-
 hbase-annotations/project-info.html             |     6 +-
 hbase-annotations/project-reports.html          |     6 +-
 hbase-annotations/project-summary.html          |     6 +-
 hbase-annotations/source-repository.html        |     6 +-
 hbase-annotations/team-list.html                |     6 +-
 hbase-archetypes/dependencies.html              |     6 +-
 hbase-archetypes/dependency-convergence.html    |     6 +-
 hbase-archetypes/dependency-info.html           |     6 +-
 hbase-archetypes/dependency-management.html     |     6 +-
 .../hbase-archetype-builder/dependencies.html   |     6 +-
 .../dependency-convergence.html                 |     6 +-
 .../dependency-info.html                        |     6 +-
 .../dependency-management.html                  |     6 +-
 .../hbase-archetype-builder/index.html          |     6 +-
 .../hbase-archetype-builder/integration.html    |     6 +-
 .../hbase-archetype-builder/issue-tracking.html |     6 +-
 .../hbase-archetype-builder/license.html        |     6 +-
 .../hbase-archetype-builder/mail-lists.html     |     6 +-
 .../plugin-management.html                      |     6 +-
 .../hbase-archetype-builder/plugins.html        |     6 +-
 .../hbase-archetype-builder/project-info.html   |     6 +-
 .../project-summary.html                        |     6 +-
 .../source-repository.html                      |     6 +-
 .../hbase-archetype-builder/team-list.html      |     6 +-
 .../hbase-client-project/checkstyle.html        |     6 +-
 .../hbase-client-project/dependencies.html      |    10 +-
 .../dependency-convergence.html                 |     6 +-
 .../hbase-client-project/dependency-info.html   |     6 +-
 .../dependency-management.html                  |     6 +-
 .../hbase-client-project/index.html             |     6 +-
 .../hbase-client-project/integration.html       |     6 +-
 .../hbase-client-project/issue-tracking.html    |     6 +-
 .../hbase-client-project/license.html           |     6 +-
 .../hbase-client-project/mail-lists.html        |     6 +-
 .../hbase-client-project/plugin-management.html |     6 +-
 .../hbase-client-project/plugins.html           |     6 +-
 .../hbase-client-project/project-info.html      |     6 +-
 .../hbase-client-project/project-reports.html   |     6 +-
 .../hbase-client-project/project-summary.html   |     6 +-
 .../hbase-client-project/source-repository.html |     6 +-
 .../hbase-client-project/team-list.html         |     6 +-
 .../hbase-shaded-client-project/checkstyle.html |     6 +-
 .../dependencies.html                           |     8 +-
 .../dependency-convergence.html                 |     6 +-
 .../dependency-info.html                        |     6 +-
 .../dependency-management.html                  |     6 +-
 .../hbase-shaded-client-project/index.html      |     6 +-
 .../integration.html                            |     6 +-
 .../issue-tracking.html                         |     6 +-
 .../hbase-shaded-client-project/license.html    |     6 +-
 .../hbase-shaded-client-project/mail-lists.html |     6 +-
 .../plugin-management.html                      |     6 +-
 .../hbase-shaded-client-project/plugins.html    |     6 +-
 .../project-info.html                           |     6 +-
 .../project-reports.html                        |     6 +-
 .../project-summary.html                        |     6 +-
 .../source-repository.html                      |     6 +-
 .../hbase-shaded-client-project/team-list.html  |     6 +-
 hbase-archetypes/index.html                     |     6 +-
 hbase-archetypes/integration.html               |     6 +-
 hbase-archetypes/issue-tracking.html            |     6 +-
 hbase-archetypes/license.html                   |     6 +-
 hbase-archetypes/mail-lists.html                |     6 +-
 hbase-archetypes/plugin-management.html         |     6 +-
 hbase-archetypes/plugins.html                   |     6 +-
 hbase-archetypes/project-info.html              |     6 +-
 hbase-archetypes/project-summary.html           |     6 +-
 hbase-archetypes/source-repository.html         |     6 +-
 hbase-archetypes/team-list.html                 |     6 +-
 hbase-spark/checkstyle.html                     |     6 +-
 hbase-spark/dependencies.html                   |     6 +-
 hbase-spark/dependency-convergence.html         |     6 +-
 hbase-spark/dependency-info.html                |     6 +-
 hbase-spark/dependency-management.html          |     6 +-
 hbase-spark/index.html                          |     6 +-
 hbase-spark/integration.html                    |     6 +-
 hbase-spark/issue-tracking.html                 |     6 +-
 hbase-spark/license.html                        |     6 +-
 hbase-spark/mail-lists.html                     |     6 +-
 hbase-spark/plugin-management.html              |     6 +-
 hbase-spark/plugins.html                        |     6 +-
 hbase-spark/project-info.html                   |     6 +-
 hbase-spark/project-reports.html                |     6 +-
 hbase-spark/project-summary.html                |     6 +-
 hbase-spark/source-repository.html              |     6 +-
 hbase-spark/team-list.html                      |     6 +-
 index.html                                      |     4 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     4 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 testdevapidocs/index-all.html                   |    26 +
 .../hbase/class-use/HBaseTestingUtility.html    |    26 +-
 .../hbase/client/TestAsyncRegionAdminApi.html   |   252 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |     8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/regionserver/package-tree.html |     4 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     2 +-
 .../apache/hadoop/hbase/util/TestFSUtils.html   |   137 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 .../hbase/client/TestAsyncRegionAdminApi.html   |  1035 +-
 .../apache/hadoop/hbase/util/TestFSUtils.html   |  1036 +-
 237 files changed, 67603 insertions(+), 60534 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index a401664..f3399f0 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -606,7 +606,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 10738a2..4d604c8 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.6, based on Prawn 1.2.1)
 /Producer (Apache HBase Team)
-/CreationDate (D:20170504144726+00'00')
-/ModDate (D:20170504144726+00'00')
+/CreationDate (D:20170505144712+00'00')
+/ModDate (D:20170505144712+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/apache_hbase_reference_guide.pdfmarks
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdfmarks b/apache_hbase_reference_guide.pdfmarks
index 778d29e..aabeb9e 100644
--- a/apache_hbase_reference_guide.pdfmarks
+++ b/apache_hbase_reference_guide.pdfmarks
@@ -2,8 +2,8 @@
   /Author (Apache HBase Team)
   /Subject ()
   /Keywords ()
-  /ModDate (D:20170504144848)
-  /CreationDate (D:20170504144848)
+  /ModDate (D:20170505144835)
+  /CreationDate (D:20170505144835)
   /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
   /Producer ()
   /DOCINFO pdfmark

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/apidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
----------------------------------------------------------------------
diff --git a/apidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html b/apidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
index 8be2297..5e98a0b 100644
--- a/apidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
+++ b/apidocs/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
@@ -1223,7 +1223,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>buildDependencyClasspath</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.804">buildDependencyClasspath</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.805">buildDependencyClasspath</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Returns a classpath string built from the content of the "tmpjars" value in <code>conf</code>.
  Also exposed to shell scripts via `bin/hbase mapredcp`.</div>
 </li>
@@ -1234,7 +1234,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <ul class="blockList">
 <li class="blockList">
 <h4>addDependencyJars</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.828">addDependencyJars</a>(org.apache.hadoop.mapreduce.Job&nbsp;job)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.829">addDependencyJars</a>(org.apache.hadoop.mapreduce.Job&nbsp;job)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Add the HBase dependency jars as well as jars for any of the configured
  job classes to the job configuration, so that JobClient will ship them
@@ -1252,7 +1252,7 @@ public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/
 <li class="blockList">
 <h4>addDependencyJars</h4>
 <pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.854">addDependencyJars</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#line.855">addDependencyJars</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;...&nbsp;classes)
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">rely on <a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html#addDependencyJars-org.apache.hadoop.mapreduce.Job-"><code>addDependencyJars(Job)</code></a> instead.</span></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
index bf0bc21..bd316ac 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/mapreduce/TableMapReduceUtil.html
@@ -795,242 +795,243 @@
 <span class="sourceLineNo">787</span>      org.apache.hadoop.hbase.CompatibilityFactory.class,            // hbase-hadoop-compat<a name="line.787"></a>
 <span class="sourceLineNo">788</span>      org.apache.hadoop.hbase.mapreduce.TableMapper.class,           // hbase-server<a name="line.788"></a>
 <span class="sourceLineNo">789</span>      org.apache.hadoop.hbase.metrics.impl.FastLongHistogram.class,  // hbase-metrics<a name="line.789"></a>
-<span class="sourceLineNo">790</span>      prefixTreeCodecClass, //  hbase-prefix-tree (if null will be skipped)<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      // pull necessary dependencies<a name="line.791"></a>
-<span class="sourceLineNo">792</span>      org.apache.zookeeper.ZooKeeper.class,<a name="line.792"></a>
-<span class="sourceLineNo">793</span>      io.netty.channel.Channel.class,<a name="line.793"></a>
-<span class="sourceLineNo">794</span>      com.google.protobuf.Message.class,<a name="line.794"></a>
-<span class="sourceLineNo">795</span>      com.google.common.collect.Lists.class,<a name="line.795"></a>
-<span class="sourceLineNo">796</span>      org.apache.htrace.Trace.class,<a name="line.796"></a>
-<span class="sourceLineNo">797</span>      com.codahale.metrics.MetricRegistry.class);<a name="line.797"></a>
-<span class="sourceLineNo">798</span>  }<a name="line.798"></a>
-<span class="sourceLineNo">799</span><a name="line.799"></a>
-<span class="sourceLineNo">800</span>  /**<a name="line.800"></a>
-<span class="sourceLineNo">801</span>   * Returns a classpath string built from the content of the "tmpjars" value in {@code conf}.<a name="line.801"></a>
-<span class="sourceLineNo">802</span>   * Also exposed to shell scripts via `bin/hbase mapredcp`.<a name="line.802"></a>
-<span class="sourceLineNo">803</span>   */<a name="line.803"></a>
-<span class="sourceLineNo">804</span>  public static String buildDependencyClasspath(Configuration conf) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>    if (conf == null) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>      throw new IllegalArgumentException("Must provide a configuration object.");<a name="line.806"></a>
-<span class="sourceLineNo">807</span>    }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    Set&lt;String&gt; paths = new HashSet&lt;&gt;(conf.getStringCollection("tmpjars"));<a name="line.808"></a>
-<span class="sourceLineNo">809</span>    if (paths.isEmpty()) {<a name="line.809"></a>
-<span class="sourceLineNo">810</span>      throw new IllegalArgumentException("Configuration contains no tmpjars.");<a name="line.810"></a>
-<span class="sourceLineNo">811</span>    }<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    StringBuilder sb = new StringBuilder();<a name="line.812"></a>
-<span class="sourceLineNo">813</span>    for (String s : paths) {<a name="line.813"></a>
-<span class="sourceLineNo">814</span>      // entries can take the form 'file:/path/to/file.jar'.<a name="line.814"></a>
-<span class="sourceLineNo">815</span>      int idx = s.indexOf(":");<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      if (idx != -1) s = s.substring(idx + 1);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      if (sb.length() &gt; 0) sb.append(File.pathSeparator);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      sb.append(s);<a name="line.818"></a>
-<span class="sourceLineNo">819</span>    }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    return sb.toString();<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  }<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>  /**<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * Add the HBase dependency jars as well as jars for any of the configured<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * job classes to the job configuration, so that JobClient will ship them<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * to the cluster and add them to the DistributedCache.<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   */<a name="line.827"></a>
-<span class="sourceLineNo">828</span>  public static void addDependencyJars(Job job) throws IOException {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>    addHBaseDependencyJars(job.getConfiguration());<a name="line.829"></a>
-<span class="sourceLineNo">830</span>    try {<a name="line.830"></a>
-<span class="sourceLineNo">831</span>      addDependencyJarsForClasses(job.getConfiguration(),<a name="line.831"></a>
-<span class="sourceLineNo">832</span>          // when making changes here, consider also mapred.TableMapReduceUtil<a name="line.832"></a>
-<span class="sourceLineNo">833</span>          // pull job classes<a name="line.833"></a>
-<span class="sourceLineNo">834</span>          job.getMapOutputKeyClass(),<a name="line.834"></a>
-<span class="sourceLineNo">835</span>          job.getMapOutputValueClass(),<a name="line.835"></a>
-<span class="sourceLineNo">836</span>          job.getInputFormatClass(),<a name="line.836"></a>
-<span class="sourceLineNo">837</span>          job.getOutputKeyClass(),<a name="line.837"></a>
-<span class="sourceLineNo">838</span>          job.getOutputValueClass(),<a name="line.838"></a>
-<span class="sourceLineNo">839</span>          job.getOutputFormatClass(),<a name="line.839"></a>
-<span class="sourceLineNo">840</span>          job.getPartitionerClass(),<a name="line.840"></a>
-<span class="sourceLineNo">841</span>          job.getCombinerClass());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>    } catch (ClassNotFoundException e) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span>      throw new IOException(e);<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>  /**<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * Add the jars containing the given classes to the job's configuration<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * such that JobClient will ship them to the cluster and add them to<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * the DistributedCache.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   * @deprecated rely on {@link #addDependencyJars(Job)} instead.<a name="line.851"></a>
-<span class="sourceLineNo">852</span>   */<a name="line.852"></a>
-<span class="sourceLineNo">853</span>  @Deprecated<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  public static void addDependencyJars(Configuration conf,<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      Class&lt;?&gt;... classes) throws IOException {<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    LOG.warn("The addDependencyJars(Configuration, Class&lt;?&gt;...) method has been deprecated since it"<a name="line.856"></a>
-<span class="sourceLineNo">857</span>             + " is easy to use incorrectly. Most users should rely on addDependencyJars(Job) " +<a name="line.857"></a>
-<span class="sourceLineNo">858</span>             "instead. See HBASE-8386 for more details.");<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    addDependencyJarsForClasses(conf, classes);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>  }<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>   * Add the jars containing the given classes to the job's configuration<a name="line.863"></a>
-<span class="sourceLineNo">864</span>   * such that JobClient will ship them to the cluster and add them to<a name="line.864"></a>
-<span class="sourceLineNo">865</span>   * the DistributedCache.<a name="line.865"></a>
-<span class="sourceLineNo">866</span>   *<a name="line.866"></a>
-<span class="sourceLineNo">867</span>   * N.B. that this method at most adds one jar per class given. If there is more than one<a name="line.867"></a>
-<span class="sourceLineNo">868</span>   * jar available containing a class with the same name as a given class, we don't define<a name="line.868"></a>
-<span class="sourceLineNo">869</span>   * which of those jars might be chosen.<a name="line.869"></a>
-<span class="sourceLineNo">870</span>   *<a name="line.870"></a>
-<span class="sourceLineNo">871</span>   * @param conf The Hadoop Configuration to modify<a name="line.871"></a>
-<span class="sourceLineNo">872</span>   * @param classes will add just those dependencies needed to find the given classes<a name="line.872"></a>
-<span class="sourceLineNo">873</span>   * @throws IOException if an underlying library call fails.<a name="line.873"></a>
-<span class="sourceLineNo">874</span>   */<a name="line.874"></a>
-<span class="sourceLineNo">875</span>  @InterfaceAudience.Private<a name="line.875"></a>
-<span class="sourceLineNo">876</span>  public static void addDependencyJarsForClasses(Configuration conf,<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      Class&lt;?&gt;... classes) throws IOException {<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>    FileSystem localFs = FileSystem.getLocal(conf);<a name="line.879"></a>
-<span class="sourceLineNo">880</span>    Set&lt;String&gt; jars = new HashSet&lt;&gt;();<a name="line.880"></a>
-<span class="sourceLineNo">881</span>    // Add jars that are already in the tmpjars variable<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    jars.addAll(conf.getStringCollection("tmpjars"));<a name="line.882"></a>
-<span class="sourceLineNo">883</span><a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // add jars as we find them to a map of contents jar name so that we can avoid<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    // creating new jars for classes that have already been packaged.<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    Map&lt;String, String&gt; packagedClasses = new HashMap&lt;&gt;();<a name="line.886"></a>
-<span class="sourceLineNo">887</span><a name="line.887"></a>
-<span class="sourceLineNo">888</span>    // Add jars containing the specified classes<a name="line.888"></a>
-<span class="sourceLineNo">889</span>    for (Class&lt;?&gt; clazz : classes) {<a name="line.889"></a>
-<span class="sourceLineNo">890</span>      if (clazz == null) continue;<a name="line.890"></a>
-<span class="sourceLineNo">891</span><a name="line.891"></a>
-<span class="sourceLineNo">892</span>      Path path = findOrCreateJar(clazz, localFs, packagedClasses);<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      if (path == null) {<a name="line.893"></a>
-<span class="sourceLineNo">894</span>        LOG.warn("Could not find jar for class " + clazz +<a name="line.894"></a>
-<span class="sourceLineNo">895</span>                 " in order to ship it to the cluster.");<a name="line.895"></a>
-<span class="sourceLineNo">896</span>        continue;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>      if (!localFs.exists(path)) {<a name="line.898"></a>
-<span class="sourceLineNo">899</span>        LOG.warn("Could not validate jar file " + path + " for class "<a name="line.899"></a>
-<span class="sourceLineNo">900</span>                 + clazz);<a name="line.900"></a>
-<span class="sourceLineNo">901</span>        continue;<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      }<a name="line.902"></a>
-<span class="sourceLineNo">903</span>      jars.add(path.toString());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>    }<a name="line.904"></a>
-<span class="sourceLineNo">905</span>    if (jars.isEmpty()) return;<a name="line.905"></a>
-<span class="sourceLineNo">906</span><a name="line.906"></a>
-<span class="sourceLineNo">907</span>    conf.set("tmpjars", StringUtils.arrayToString(jars.toArray(new String[jars.size()])));<a name="line.907"></a>
-<span class="sourceLineNo">908</span>  }<a name="line.908"></a>
-<span class="sourceLineNo">909</span><a name="line.909"></a>
-<span class="sourceLineNo">910</span>  /**<a name="line.910"></a>
-<span class="sourceLineNo">911</span>   * Finds the Jar for a class or creates it if it doesn't exist. If the class is in<a name="line.911"></a>
-<span class="sourceLineNo">912</span>   * a directory in the classpath, it creates a Jar on the fly with the<a name="line.912"></a>
-<span class="sourceLineNo">913</span>   * contents of the directory and returns the path to that Jar. If a Jar is<a name="line.913"></a>
-<span class="sourceLineNo">914</span>   * created, it is created in the system temporary directory. Otherwise,<a name="line.914"></a>
-<span class="sourceLineNo">915</span>   * returns an existing jar that contains a class of the same name. Maintains<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * a mapping from jar contents to the tmp jar created.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @param my_class the class to find.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param fs the FileSystem with which to qualify the returned path.<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param packagedClasses a map of class name to path.<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @return a jar file that contains the class.<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   * @throws IOException<a name="line.921"></a>
-<span class="sourceLineNo">922</span>   */<a name="line.922"></a>
-<span class="sourceLineNo">923</span>  private static Path findOrCreateJar(Class&lt;?&gt; my_class, FileSystem fs,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      Map&lt;String, String&gt; packagedClasses)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>  throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    // attempt to locate an existing jar for the class.<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    String jar = findContainingJar(my_class, packagedClasses);<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    if (null == jar || jar.isEmpty()) {<a name="line.928"></a>
-<span class="sourceLineNo">929</span>      jar = getJar(my_class);<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      updateMap(jar, packagedClasses);<a name="line.930"></a>
-<span class="sourceLineNo">931</span>    }<a name="line.931"></a>
-<span class="sourceLineNo">932</span><a name="line.932"></a>
-<span class="sourceLineNo">933</span>    if (null == jar || jar.isEmpty()) {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      return null;<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>    LOG.debug(String.format("For class %s, using jar %s", my_class.getName(), jar));<a name="line.937"></a>
-<span class="sourceLineNo">938</span>    return new Path(jar).makeQualified(fs);<a name="line.938"></a>
-<span class="sourceLineNo">939</span>  }<a name="line.939"></a>
-<span class="sourceLineNo">940</span><a name="line.940"></a>
-<span class="sourceLineNo">941</span>  /**<a name="line.941"></a>
-<span class="sourceLineNo">942</span>   * Add entries to &lt;code&gt;packagedClasses&lt;/code&gt; corresponding to class files<a name="line.942"></a>
-<span class="sourceLineNo">943</span>   * contained in &lt;code&gt;jar&lt;/code&gt;.<a name="line.943"></a>
-<span class="sourceLineNo">944</span>   * @param jar The jar who's content to list.<a name="line.944"></a>
-<span class="sourceLineNo">945</span>   * @param packagedClasses map[class -&gt; jar]<a name="line.945"></a>
-<span class="sourceLineNo">946</span>   */<a name="line.946"></a>
-<span class="sourceLineNo">947</span>  private static void updateMap(String jar, Map&lt;String, String&gt; packagedClasses) throws IOException {<a name="line.947"></a>
-<span class="sourceLineNo">948</span>    if (null == jar || jar.isEmpty()) {<a name="line.948"></a>
-<span class="sourceLineNo">949</span>      return;<a name="line.949"></a>
-<span class="sourceLineNo">950</span>    }<a name="line.950"></a>
-<span class="sourceLineNo">951</span>    ZipFile zip = null;<a name="line.951"></a>
-<span class="sourceLineNo">952</span>    try {<a name="line.952"></a>
-<span class="sourceLineNo">953</span>      zip = new ZipFile(jar);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>      for (Enumeration&lt;? extends ZipEntry&gt; iter = zip.entries(); iter.hasMoreElements();) {<a name="line.954"></a>
-<span class="sourceLineNo">955</span>        ZipEntry entry = iter.nextElement();<a name="line.955"></a>
-<span class="sourceLineNo">956</span>        if (entry.getName().endsWith("class")) {<a name="line.956"></a>
-<span class="sourceLineNo">957</span>          packagedClasses.put(entry.getName(), jar);<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        }<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span>    } finally {<a name="line.960"></a>
-<span class="sourceLineNo">961</span>      if (null != zip) zip.close();<a name="line.961"></a>
-<span class="sourceLineNo">962</span>    }<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>   * Find a jar that contains a class of the same name, if any. It will return<a name="line.966"></a>
-<span class="sourceLineNo">967</span>   * a jar file, even if that is not the first thing on the class path that<a name="line.967"></a>
-<span class="sourceLineNo">968</span>   * has a class with the same name. Looks first on the classpath and then in<a name="line.968"></a>
-<span class="sourceLineNo">969</span>   * the &lt;code&gt;packagedClasses&lt;/code&gt; map.<a name="line.969"></a>
-<span class="sourceLineNo">970</span>   * @param my_class the class to find.<a name="line.970"></a>
-<span class="sourceLineNo">971</span>   * @return a jar file that contains the class, or null.<a name="line.971"></a>
-<span class="sourceLineNo">972</span>   * @throws IOException<a name="line.972"></a>
-<span class="sourceLineNo">973</span>   */<a name="line.973"></a>
-<span class="sourceLineNo">974</span>  private static String findContainingJar(Class&lt;?&gt; my_class, Map&lt;String, String&gt; packagedClasses)<a name="line.974"></a>
-<span class="sourceLineNo">975</span>      throws IOException {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>    ClassLoader loader = my_class.getClassLoader();<a name="line.976"></a>
-<span class="sourceLineNo">977</span><a name="line.977"></a>
-<span class="sourceLineNo">978</span>    String class_file = my_class.getName().replaceAll("\\.", "/") + ".class";<a name="line.978"></a>
-<span class="sourceLineNo">979</span><a name="line.979"></a>
-<span class="sourceLineNo">980</span>    if (loader != null) {<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // first search the classpath<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      for (Enumeration&lt;URL&gt; itr = loader.getResources(class_file); itr.hasMoreElements();) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        URL url = itr.nextElement();<a name="line.983"></a>
-<span class="sourceLineNo">984</span>        if ("jar".equals(url.getProtocol())) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>          String toReturn = url.getPath();<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          if (toReturn.startsWith("file:")) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            toReturn = toReturn.substring("file:".length());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>          }<a name="line.988"></a>
-<span class="sourceLineNo">989</span>          // URLDecoder is a misnamed class, since it actually decodes<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          // x-www-form-urlencoded MIME type rather than actual<a name="line.990"></a>
-<span class="sourceLineNo">991</span>          // URL encoding (which the file path has). Therefore it would<a name="line.991"></a>
-<span class="sourceLineNo">992</span>          // decode +s to ' 's which is incorrect (spaces are actually<a name="line.992"></a>
-<span class="sourceLineNo">993</span>          // either unencoded or encoded as "%20"). Replace +s first, so<a name="line.993"></a>
-<span class="sourceLineNo">994</span>          // that they are kept sacred during the decoding process.<a name="line.994"></a>
-<span class="sourceLineNo">995</span>          toReturn = toReturn.replaceAll("\\+", "%2B");<a name="line.995"></a>
-<span class="sourceLineNo">996</span>          toReturn = URLDecoder.decode(toReturn, "UTF-8");<a name="line.996"></a>
-<span class="sourceLineNo">997</span>          return toReturn.replaceAll("!.*$", "");<a name="line.997"></a>
-<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
-<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>    }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span><a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>    // now look in any jars we've packaged using JarFinder. Returns null when<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>    // no jar is found.<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    return packagedClasses.get(class_file);<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>  }<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span><a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>  /**<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>   * Invoke 'getJar' on a custom JarFinder implementation. Useful for some job<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>   * configuration contexts (HBASE-8140) and also for testing on MRv2.<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>   * check if we have HADOOP-9426.<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>   * @param my_class the class to find.<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>   * @return a jar file that contains the class, or null.<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>   */<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  private static String getJar(Class&lt;?&gt; my_class) {<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>    String ret = null;<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>    try {<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>      ret = JarFinder.getJar(my_class);<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>    } catch (Exception e) {<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>      // toss all other exceptions, related to reflection failure<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      throw new RuntimeException("getJar invocation failed.", e);<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>    }<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span><a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>    return ret;<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>  }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>}<a name="line.1025"></a>
+<span class="sourceLineNo">790</span>      org.apache.hadoop.hbase.metrics.Snapshot.class,                // hbase-metrics-api<a name="line.790"></a>
+<span class="sourceLineNo">791</span>      prefixTreeCodecClass, //  hbase-prefix-tree (if null will be skipped)<a name="line.791"></a>
+<span class="sourceLineNo">792</span>      // pull necessary dependencies<a name="line.792"></a>
+<span class="sourceLineNo">793</span>      org.apache.zookeeper.ZooKeeper.class,<a name="line.793"></a>
+<span class="sourceLineNo">794</span>      io.netty.channel.Channel.class,<a name="line.794"></a>
+<span class="sourceLineNo">795</span>      com.google.protobuf.Message.class,<a name="line.795"></a>
+<span class="sourceLineNo">796</span>      com.google.common.collect.Lists.class,<a name="line.796"></a>
+<span class="sourceLineNo">797</span>      org.apache.htrace.Trace.class,<a name="line.797"></a>
+<span class="sourceLineNo">798</span>      com.codahale.metrics.MetricRegistry.class);<a name="line.798"></a>
+<span class="sourceLineNo">799</span>  }<a name="line.799"></a>
+<span class="sourceLineNo">800</span><a name="line.800"></a>
+<span class="sourceLineNo">801</span>  /**<a name="line.801"></a>
+<span class="sourceLineNo">802</span>   * Returns a classpath string built from the content of the "tmpjars" value in {@code conf}.<a name="line.802"></a>
+<span class="sourceLineNo">803</span>   * Also exposed to shell scripts via `bin/hbase mapredcp`.<a name="line.803"></a>
+<span class="sourceLineNo">804</span>   */<a name="line.804"></a>
+<span class="sourceLineNo">805</span>  public static String buildDependencyClasspath(Configuration conf) {<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    if (conf == null) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      throw new IllegalArgumentException("Must provide a configuration object.");<a name="line.807"></a>
+<span class="sourceLineNo">808</span>    }<a name="line.808"></a>
+<span class="sourceLineNo">809</span>    Set&lt;String&gt; paths = new HashSet&lt;&gt;(conf.getStringCollection("tmpjars"));<a name="line.809"></a>
+<span class="sourceLineNo">810</span>    if (paths.isEmpty()) {<a name="line.810"></a>
+<span class="sourceLineNo">811</span>      throw new IllegalArgumentException("Configuration contains no tmpjars.");<a name="line.811"></a>
+<span class="sourceLineNo">812</span>    }<a name="line.812"></a>
+<span class="sourceLineNo">813</span>    StringBuilder sb = new StringBuilder();<a name="line.813"></a>
+<span class="sourceLineNo">814</span>    for (String s : paths) {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>      // entries can take the form 'file:/path/to/file.jar'.<a name="line.815"></a>
+<span class="sourceLineNo">816</span>      int idx = s.indexOf(":");<a name="line.816"></a>
+<span class="sourceLineNo">817</span>      if (idx != -1) s = s.substring(idx + 1);<a name="line.817"></a>
+<span class="sourceLineNo">818</span>      if (sb.length() &gt; 0) sb.append(File.pathSeparator);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>      sb.append(s);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>    }<a name="line.820"></a>
+<span class="sourceLineNo">821</span>    return sb.toString();<a name="line.821"></a>
+<span class="sourceLineNo">822</span>  }<a name="line.822"></a>
+<span class="sourceLineNo">823</span><a name="line.823"></a>
+<span class="sourceLineNo">824</span>  /**<a name="line.824"></a>
+<span class="sourceLineNo">825</span>   * Add the HBase dependency jars as well as jars for any of the configured<a name="line.825"></a>
+<span class="sourceLineNo">826</span>   * job classes to the job configuration, so that JobClient will ship them<a name="line.826"></a>
+<span class="sourceLineNo">827</span>   * to the cluster and add them to the DistributedCache.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>   */<a name="line.828"></a>
+<span class="sourceLineNo">829</span>  public static void addDependencyJars(Job job) throws IOException {<a name="line.829"></a>
+<span class="sourceLineNo">830</span>    addHBaseDependencyJars(job.getConfiguration());<a name="line.830"></a>
+<span class="sourceLineNo">831</span>    try {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>      addDependencyJarsForClasses(job.getConfiguration(),<a name="line.832"></a>
+<span class="sourceLineNo">833</span>          // when making changes here, consider also mapred.TableMapReduceUtil<a name="line.833"></a>
+<span class="sourceLineNo">834</span>          // pull job classes<a name="line.834"></a>
+<span class="sourceLineNo">835</span>          job.getMapOutputKeyClass(),<a name="line.835"></a>
+<span class="sourceLineNo">836</span>          job.getMapOutputValueClass(),<a name="line.836"></a>
+<span class="sourceLineNo">837</span>          job.getInputFormatClass(),<a name="line.837"></a>
+<span class="sourceLineNo">838</span>          job.getOutputKeyClass(),<a name="line.838"></a>
+<span class="sourceLineNo">839</span>          job.getOutputValueClass(),<a name="line.839"></a>
+<span class="sourceLineNo">840</span>          job.getOutputFormatClass(),<a name="line.840"></a>
+<span class="sourceLineNo">841</span>          job.getPartitionerClass(),<a name="line.841"></a>
+<span class="sourceLineNo">842</span>          job.getCombinerClass());<a name="line.842"></a>
+<span class="sourceLineNo">843</span>    } catch (ClassNotFoundException e) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>      throw new IOException(e);<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><a name="line.847"></a>
+<span class="sourceLineNo">848</span>  /**<a name="line.848"></a>
+<span class="sourceLineNo">849</span>   * Add the jars containing the given classes to the job's configuration<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * such that JobClient will ship them to the cluster and add them to<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * the DistributedCache.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * @deprecated rely on {@link #addDependencyJars(Job)} instead.<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   */<a name="line.853"></a>
+<span class="sourceLineNo">854</span>  @Deprecated<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  public static void addDependencyJars(Configuration conf,<a name="line.855"></a>
+<span class="sourceLineNo">856</span>      Class&lt;?&gt;... classes) throws IOException {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>    LOG.warn("The addDependencyJars(Configuration, Class&lt;?&gt;...) method has been deprecated since it"<a name="line.857"></a>
+<span class="sourceLineNo">858</span>             + " is easy to use incorrectly. Most users should rely on addDependencyJars(Job) " +<a name="line.858"></a>
+<span class="sourceLineNo">859</span>             "instead. See HBASE-8386 for more details.");<a name="line.859"></a>
+<span class="sourceLineNo">860</span>    addDependencyJarsForClasses(conf, classes);<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>  /**<a name="line.863"></a>
+<span class="sourceLineNo">864</span>   * Add the jars containing the given classes to the job's configuration<a name="line.864"></a>
+<span class="sourceLineNo">865</span>   * such that JobClient will ship them to the cluster and add them to<a name="line.865"></a>
+<span class="sourceLineNo">866</span>   * the DistributedCache.<a name="line.866"></a>
+<span class="sourceLineNo">867</span>   *<a name="line.867"></a>
+<span class="sourceLineNo">868</span>   * N.B. that this method at most adds one jar per class given. If there is more than one<a name="line.868"></a>
+<span class="sourceLineNo">869</span>   * jar available containing a class with the same name as a given class, we don't define<a name="line.869"></a>
+<span class="sourceLineNo">870</span>   * which of those jars might be chosen.<a name="line.870"></a>
+<span class="sourceLineNo">871</span>   *<a name="line.871"></a>
+<span class="sourceLineNo">872</span>   * @param conf The Hadoop Configuration to modify<a name="line.872"></a>
+<span class="sourceLineNo">873</span>   * @param classes will add just those dependencies needed to find the given classes<a name="line.873"></a>
+<span class="sourceLineNo">874</span>   * @throws IOException if an underlying library call fails.<a name="line.874"></a>
+<span class="sourceLineNo">875</span>   */<a name="line.875"></a>
+<span class="sourceLineNo">876</span>  @InterfaceAudience.Private<a name="line.876"></a>
+<span class="sourceLineNo">877</span>  public static void addDependencyJarsForClasses(Configuration conf,<a name="line.877"></a>
+<span class="sourceLineNo">878</span>      Class&lt;?&gt;... classes) throws IOException {<a name="line.878"></a>
+<span class="sourceLineNo">879</span><a name="line.879"></a>
+<span class="sourceLineNo">880</span>    FileSystem localFs = FileSystem.getLocal(conf);<a name="line.880"></a>
+<span class="sourceLineNo">881</span>    Set&lt;String&gt; jars = new HashSet&lt;&gt;();<a name="line.881"></a>
+<span class="sourceLineNo">882</span>    // Add jars that are already in the tmpjars variable<a name="line.882"></a>
+<span class="sourceLineNo">883</span>    jars.addAll(conf.getStringCollection("tmpjars"));<a name="line.883"></a>
+<span class="sourceLineNo">884</span><a name="line.884"></a>
+<span class="sourceLineNo">885</span>    // add jars as we find them to a map of contents jar name so that we can avoid<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    // creating new jars for classes that have already been packaged.<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    Map&lt;String, String&gt; packagedClasses = new HashMap&lt;&gt;();<a name="line.887"></a>
+<span class="sourceLineNo">888</span><a name="line.888"></a>
+<span class="sourceLineNo">889</span>    // Add jars containing the specified classes<a name="line.889"></a>
+<span class="sourceLineNo">890</span>    for (Class&lt;?&gt; clazz : classes) {<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      if (clazz == null) continue;<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>      Path path = findOrCreateJar(clazz, localFs, packagedClasses);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>      if (path == null) {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        LOG.warn("Could not find jar for class " + clazz +<a name="line.895"></a>
+<span class="sourceLineNo">896</span>                 " in order to ship it to the cluster.");<a name="line.896"></a>
+<span class="sourceLineNo">897</span>        continue;<a name="line.897"></a>
+<span class="sourceLineNo">898</span>      }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>      if (!localFs.exists(path)) {<a name="line.899"></a>
+<span class="sourceLineNo">900</span>        LOG.warn("Could not validate jar file " + path + " for class "<a name="line.900"></a>
+<span class="sourceLineNo">901</span>                 + clazz);<a name="line.901"></a>
+<span class="sourceLineNo">902</span>        continue;<a name="line.902"></a>
+<span class="sourceLineNo">903</span>      }<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      jars.add(path.toString());<a name="line.904"></a>
+<span class="sourceLineNo">905</span>    }<a name="line.905"></a>
+<span class="sourceLineNo">906</span>    if (jars.isEmpty()) return;<a name="line.906"></a>
+<span class="sourceLineNo">907</span><a name="line.907"></a>
+<span class="sourceLineNo">908</span>    conf.set("tmpjars", StringUtils.arrayToString(jars.toArray(new String[jars.size()])));<a name="line.908"></a>
+<span class="sourceLineNo">909</span>  }<a name="line.909"></a>
+<span class="sourceLineNo">910</span><a name="line.910"></a>
+<span class="sourceLineNo">911</span>  /**<a name="line.911"></a>
+<span class="sourceLineNo">912</span>   * Finds the Jar for a class or creates it if it doesn't exist. If the class is in<a name="line.912"></a>
+<span class="sourceLineNo">913</span>   * a directory in the classpath, it creates a Jar on the fly with the<a name="line.913"></a>
+<span class="sourceLineNo">914</span>   * contents of the directory and returns the path to that Jar. If a Jar is<a name="line.914"></a>
+<span class="sourceLineNo">915</span>   * created, it is created in the system temporary directory. Otherwise,<a name="line.915"></a>
+<span class="sourceLineNo">916</span>   * returns an existing jar that contains a class of the same name. Maintains<a name="line.916"></a>
+<span class="sourceLineNo">917</span>   * a mapping from jar contents to the tmp jar created.<a name="line.917"></a>
+<span class="sourceLineNo">918</span>   * @param my_class the class to find.<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * @param fs the FileSystem with which to qualify the returned path.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   * @param packagedClasses a map of class name to path.<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @return a jar file that contains the class.<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @throws IOException<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   */<a name="line.923"></a>
+<span class="sourceLineNo">924</span>  private static Path findOrCreateJar(Class&lt;?&gt; my_class, FileSystem fs,<a name="line.924"></a>
+<span class="sourceLineNo">925</span>      Map&lt;String, String&gt; packagedClasses)<a name="line.925"></a>
+<span class="sourceLineNo">926</span>  throws IOException {<a name="line.926"></a>
+<span class="sourceLineNo">927</span>    // attempt to locate an existing jar for the class.<a name="line.927"></a>
+<span class="sourceLineNo">928</span>    String jar = findContainingJar(my_class, packagedClasses);<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    if (null == jar || jar.isEmpty()) {<a name="line.929"></a>
+<span class="sourceLineNo">930</span>      jar = getJar(my_class);<a name="line.930"></a>
+<span class="sourceLineNo">931</span>      updateMap(jar, packagedClasses);<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    }<a name="line.932"></a>
+<span class="sourceLineNo">933</span><a name="line.933"></a>
+<span class="sourceLineNo">934</span>    if (null == jar || jar.isEmpty()) {<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      return null;<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    }<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span>    LOG.debug(String.format("For class %s, using jar %s", my_class.getName(), jar));<a name="line.938"></a>
+<span class="sourceLineNo">939</span>    return new Path(jar).makeQualified(fs);<a name="line.939"></a>
+<span class="sourceLineNo">940</span>  }<a name="line.940"></a>
+<span class="sourceLineNo">941</span><a name="line.941"></a>
+<span class="sourceLineNo">942</span>  /**<a name="line.942"></a>
+<span class="sourceLineNo">943</span>   * Add entries to &lt;code&gt;packagedClasses&lt;/code&gt; corresponding to class files<a name="line.943"></a>
+<span class="sourceLineNo">944</span>   * contained in &lt;code&gt;jar&lt;/code&gt;.<a name="line.944"></a>
+<span class="sourceLineNo">945</span>   * @param jar The jar who's content to list.<a name="line.945"></a>
+<span class="sourceLineNo">946</span>   * @param packagedClasses map[class -&gt; jar]<a name="line.946"></a>
+<span class="sourceLineNo">947</span>   */<a name="line.947"></a>
+<span class="sourceLineNo">948</span>  private static void updateMap(String jar, Map&lt;String, String&gt; packagedClasses) throws IOException {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>    if (null == jar || jar.isEmpty()) {<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      return;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>    }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>    ZipFile zip = null;<a name="line.952"></a>
+<span class="sourceLineNo">953</span>    try {<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      zip = new ZipFile(jar);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>      for (Enumeration&lt;? extends ZipEntry&gt; iter = zip.entries(); iter.hasMoreElements();) {<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        ZipEntry entry = iter.nextElement();<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        if (entry.getName().endsWith("class")) {<a name="line.957"></a>
+<span class="sourceLineNo">958</span>          packagedClasses.put(entry.getName(), jar);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>        }<a name="line.959"></a>
+<span class="sourceLineNo">960</span>      }<a name="line.960"></a>
+<span class="sourceLineNo">961</span>    } finally {<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      if (null != zip) zip.close();<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>  /**<a name="line.966"></a>
+<span class="sourceLineNo">967</span>   * Find a jar that contains a class of the same name, if any. It will return<a name="line.967"></a>
+<span class="sourceLineNo">968</span>   * a jar file, even if that is not the first thing on the class path that<a name="line.968"></a>
+<span class="sourceLineNo">969</span>   * has a class with the same name. Looks first on the classpath and then in<a name="line.969"></a>
+<span class="sourceLineNo">970</span>   * the &lt;code&gt;packagedClasses&lt;/code&gt; map.<a name="line.970"></a>
+<span class="sourceLineNo">971</span>   * @param my_class the class to find.<a name="line.971"></a>
+<span class="sourceLineNo">972</span>   * @return a jar file that contains the class, or null.<a name="line.972"></a>
+<span class="sourceLineNo">973</span>   * @throws IOException<a name="line.973"></a>
+<span class="sourceLineNo">974</span>   */<a name="line.974"></a>
+<span class="sourceLineNo">975</span>  private static String findContainingJar(Class&lt;?&gt; my_class, Map&lt;String, String&gt; packagedClasses)<a name="line.975"></a>
+<span class="sourceLineNo">976</span>      throws IOException {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>    ClassLoader loader = my_class.getClassLoader();<a name="line.977"></a>
+<span class="sourceLineNo">978</span><a name="line.978"></a>
+<span class="sourceLineNo">979</span>    String class_file = my_class.getName().replaceAll("\\.", "/") + ".class";<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>    if (loader != null) {<a name="line.981"></a>
+<span class="sourceLineNo">982</span>      // first search the classpath<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      for (Enumeration&lt;URL&gt; itr = loader.getResources(class_file); itr.hasMoreElements();) {<a name="line.983"></a>
+<span class="sourceLineNo">984</span>        URL url = itr.nextElement();<a name="line.984"></a>
+<span class="sourceLineNo">985</span>        if ("jar".equals(url.getProtocol())) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>          String toReturn = url.getPath();<a name="line.986"></a>
+<span class="sourceLineNo">987</span>          if (toReturn.startsWith("file:")) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            toReturn = toReturn.substring("file:".length());<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          }<a name="line.989"></a>
+<span class="sourceLineNo">990</span>          // URLDecoder is a misnamed class, since it actually decodes<a name="line.990"></a>
+<span class="sourceLineNo">991</span>          // x-www-form-urlencoded MIME type rather than actual<a name="line.991"></a>
+<span class="sourceLineNo">992</span>          // URL encoding (which the file path has). Therefore it would<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          // decode +s to ' 's which is incorrect (spaces are actually<a name="line.993"></a>
+<span class="sourceLineNo">994</span>          // either unencoded or encoded as "%20"). Replace +s first, so<a name="line.994"></a>
+<span class="sourceLineNo">995</span>          // that they are kept sacred during the decoding process.<a name="line.995"></a>
+<span class="sourceLineNo">996</span>          toReturn = toReturn.replaceAll("\\+", "%2B");<a name="line.996"></a>
+<span class="sourceLineNo">997</span>          toReturn = URLDecoder.decode(toReturn, "UTF-8");<a name="line.997"></a>
+<span class="sourceLineNo">998</span>          return toReturn.replaceAll("!.*$", "");<a name="line.998"></a>
+<span class="sourceLineNo">999</span>        }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>    }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span><a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>    // now look in any jars we've packaged using JarFinder. Returns null when<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    // no jar is found.<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    return packagedClasses.get(class_file);<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>  }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span><a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>  /**<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>   * Invoke 'getJar' on a custom JarFinder implementation. Useful for some job<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>   * configuration contexts (HBASE-8140) and also for testing on MRv2.<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>   * check if we have HADOOP-9426.<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>   * @param my_class the class to find.<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>   * @return a jar file that contains the class, or null.<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>   */<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>  private static String getJar(Class&lt;?&gt; my_class) {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>    String ret = null;<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>    try {<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>      ret = JarFinder.getJar(my_class);<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>    } catch (Exception e) {<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>      // toss all other exceptions, related to reflection failure<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      throw new RuntimeException("getJar invocation failed.", e);<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    }<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span><a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>    return ret;<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>  }<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>}<a name="line.1026"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 69ddd3c..b85c4bb 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -311,7 +311,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 c28f4f6..e866406 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
@@ -3735,50 +3735,54 @@
 </tr>
 <tbody>
 <tr class="altColor">
+<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">TestFSUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#htu">htu</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>(package 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">MockServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MockServer.html#htu">htu</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestFSHDFSUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSHDFSUtils.html#HTU">HTU</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">BaseTestHBaseFsck.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/BaseTestHBaseFsck.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestHBaseFsckEncryption.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestHBaseFsckEncryption.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestCoprocessorScanPolicy.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestCoprocessorScanPolicy.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestMiniClusterLoadSequential.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestFSVisitor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSVisitor.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestRegionMover.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionMover.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ProcessBasedLocalHBaseCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.html#testUtil">testUtil</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestConnectionCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestConnectionCache.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestRegionSplitter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestRegionSplitter.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestFSTableDescriptors.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSTableDescriptors.html#UTIL">UTIL</a></span></code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html
index e6a7b2c..ee4c98e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html
@@ -18,8 +18,8 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":10,"i1":9,"i2":9,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
+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";
@@ -75,13 +75,13 @@ var activeTableTab = "activeTableTab";
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.TestAsyncAdminBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.56">TestAsyncRegionAdminApi</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.62">TestAsyncRegionAdminApi</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBase.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBase</a></pre>
 <div class="block">Class to test asynchronous region admin operations.</div>
 </li>
@@ -129,6 +129,17 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <!--   -->
 </a>
 <h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Random.html?is-external=true" title="class or interface in java.util">Random</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#RANDOM">RANDOM</a></span></code>&nbsp;</td>
+</tr>
+</table>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.TestAsyncAdminBase">
 <!--   -->
@@ -162,67 +173,107 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#compactionTest-java.lang.String-int-org.apache.hadoop.hbase.client.CompactionState-boolean-">compactionTest</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName,
+              int&nbsp;flushes,
+              org.apache.hadoop.hbase.client.CompactionState&nbsp;expectedState,
+              boolean&nbsp;singleFamily)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#countStoreFilesInFamilies-java.util.List-byte:A:A-">countStoreFilesInFamilies</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.regionserver.Region&gt;&nbsp;regions,
+                         byte[][]&nbsp;families)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#countStoreFilesInFamily-java.util.List-byte:A-">countStoreFilesInFamily</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.regionserver.Region&gt;&nbsp;regions,
+                       byte[]&nbsp;family)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>(package private) org.apache.hadoop.hbase.HRegionInfo</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#createTableAndGetOneRegion-org.apache.hadoop.hbase.TableName-">createTableAndGetOneRegion</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#createTableWithDefaultConf-org.apache.hadoop.hbase.TableName-">createTableWithDefaultConf</a></span>(org.apache.hadoop.hbase.TableName&nbsp;TABLENAME)</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>private static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#loadData-org.apache.hadoop.hbase.client.Table-byte:A:A-int-int-">loadData</a></span>(org.apache.hadoop.hbase.client.Table&nbsp;ht,
+        byte[][]&nbsp;families,
+        int&nbsp;rows,
+        int&nbsp;flushes)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#splitTests-org.apache.hadoop.hbase.TableName-int-boolean-byte:A-">splitTests</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
           int&nbsp;rowCount,
           boolean&nbsp;isSplitRegion,
           byte[]&nbsp;splitPoint)</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<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/client/TestAsyncRegionAdminApi.html#testAssignRegionAndUnassignRegion--">testAssignRegionAndUnassignRegion</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<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/TestAsyncRegionAdminApi.html#testCloseRegion--">testCloseRegion</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<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/TestAsyncRegionAdminApi.html#testCloseRegionIfInvalidRegionNameIsPassed--">testCloseRegionIfInvalidRegionNameIsPassed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<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/TestAsyncRegionAdminApi.html#testCloseRegionWhenEncodedRegionNameIsNotGiven--">testCloseRegionWhenEncodedRegionNameIsNotGiven</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<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/TestAsyncRegionAdminApi.html#testCloseRegionWhenServerNameIsEmpty--">testCloseRegionWhenServerNameIsEmpty</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testCloseRegionWhenServerNameIsNull--">testCloseRegionWhenServerNameIsNull</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<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/TestAsyncRegionAdminApi.html#testCompactRegionServer--">testCompactRegionServer</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testCompactRpcAPI--">testCompactRpcAPI</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testFlushTableAndRegion--">testFlushTableAndRegion</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testGetOnlineRegions--">testGetOnlineRegions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testGetRegion--">testGetRegion</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testMergeRegions--">testMergeRegions</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testMoveRegion--">testMoveRegion</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testOfflineRegion--">testOfflineRegion</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#testSplitTable--">testSplitTable</a></span>()</code>&nbsp;</td>
 </tr>
@@ -249,6 +300,23 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <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="RANDOM">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RANDOM</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Random.html?is-external=true" title="class or interface in java.util">Random</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.64">RANDOM</a></pre>
+</li>
+</ul>
+</li>
+</ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
 <ul class="blockList">
 <li class="blockList"><a name="constructor.detail">
@@ -261,7 +329,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestAsyncRegionAdminApi</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.56">TestAsyncRegionAdminApi</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.62">TestAsyncRegionAdminApi</a>()</pre>
 </li>
 </ul>
 </li>
@@ -278,7 +346,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>createTableWithDefaultConf</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.58">createTableWithDefaultConf</a>(org.apache.hadoop.hbase.TableName&nbsp;TABLENAME)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.66">createTableWithDefaultConf</a>(org.apache.hadoop.hbase.TableName&nbsp;TABLENAME)
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -292,7 +360,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testCloseRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.67">testCloseRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.75">testCloseRegion</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -306,7 +374,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testCloseRegionIfInvalidRegionNameIsPassed</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.93">testCloseRegionIfInvalidRegionNameIsPassed</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.101">testCloseRegionIfInvalidRegionNameIsPassed</a>()
                                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -320,7 +388,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testCloseRegionWhenServerNameIsNull</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.123">testCloseRegionWhenServerNameIsNull</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.131">testCloseRegionWhenServerNameIsNull</a>()
                                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -334,7 +402,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testCloseRegionWhenServerNameIsEmpty</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.144">testCloseRegionWhenServerNameIsEmpty</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.152">testCloseRegionWhenServerNameIsEmpty</a>()
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -348,7 +416,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testCloseRegionWhenEncodedRegionNameIsNotGiven</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.166">testCloseRegionWhenEncodedRegionNameIsNotGiven</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.174">testCloseRegionWhenEncodedRegionNameIsNotGiven</a>()
                                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -362,7 +430,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testGetRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.196">testGetRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.204">testGetRegion</a>()
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -376,7 +444,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testMergeRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.215">testMergeRegions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.223">testMergeRegions</a>()
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -390,7 +458,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testSplitTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.253">testSplitTable</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.261">testSplitTable</a>()
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -404,7 +472,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>splitTests</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.260">splitTests</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.268">splitTests</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
                         int&nbsp;rowCount,
                         boolean&nbsp;isSplitRegion,
                         byte[]&nbsp;splitPoint)
@@ -421,7 +489,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testAssignRegionAndUnassignRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.308">testAssignRegionAndUnassignRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.316">testAssignRegionAndUnassignRegion</a>()
                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -435,7 +503,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>createTableAndGetOneRegion</h4>
-<pre>org.apache.hadoop.hbase.HRegionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.349">createTableAndGetOneRegion</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName)
+<pre>org.apache.hadoop.hbase.HRegionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.357">createTableAndGetOneRegion</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName)
                                                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -451,7 +519,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="blockList">
 <li class="blockList">
 <h4>testOfflineRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.373">testOfflineRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.381">testOfflineRegion</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -462,10 +530,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <a name="testMoveRegion--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testMoveRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.404">testMoveRegion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.412">testMoveRegion</a>()
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -473,6 +541,116 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 </dl>
 </li>
 </ul>
+<a name="testGetOnlineRegions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testGetOnlineRegions</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.453">testGetOnlineRegions</a>()
+                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testFlushTableAndRegion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testFlushTableAndRegion</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.475">testFlushTableAndRegion</a>()
+                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testCompactRpcAPI--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testCompactRpcAPI</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.518">testCompactRpcAPI</a>()
+                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testCompactRegionServer--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testCompactRegionServer</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.527">testCompactRegionServer</a>()
+                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="compactionTest-java.lang.String-int-org.apache.hadoop.hbase.client.CompactionState-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>compactionTest</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.560">compactionTest</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName,
+                            int&nbsp;flushes,
+                            org.apache.hadoop.hbase.client.CompactionState&nbsp;expectedState,
+                            boolean&nbsp;singleFamily)
+                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="countStoreFilesInFamily-java.util.List-byte:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>countStoreFilesInFamily</h4>
+<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.640">countStoreFilesInFamily</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.regionserver.Region&gt;&nbsp;regions,
+                                           byte[]&nbsp;family)</pre>
+</li>
+</ul>
+<a name="countStoreFilesInFamilies-java.util.List-byte:A:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>countStoreFilesInFamilies</h4>
+<pre>private static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.644">countStoreFilesInFamilies</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.regionserver.Region&gt;&nbsp;regions,
+                                             byte[][]&nbsp;families)</pre>
+</li>
+</ul>
+<a name="loadData-org.apache.hadoop.hbase.client.Table-byte:A:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>loadData</h4>
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html#line.652">loadData</a>(org.apache.hadoop.hbase.client.Table&nbsp;ht,
+                             byte[][]&nbsp;families,
+                             int&nbsp;rows,
+                             int&nbsp;flushes)
+                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>
@@ -527,13 +705,13 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBas
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.TestAsyncAdminBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index 2b17459..ee52e3c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -158,8 +158,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TagUsage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 </ul>
 </li>
 </ul>

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/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 697287c..4248eb2 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -248,10 +248,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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.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/e2c783b2/testdevapidocs/org/apache/hadoop/hbase/util/TestFSUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSUtils.html b/testdevapidocs/org/apache/hadoop/hbase/util/TestFSUtils.html
index ecb4a2e..a26f967 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestFSUtils.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/util/TestFSUtils.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -135,6 +135,18 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#blockSize">blockSize</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private org.apache.hadoop.conf.Configuration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#conf">conf</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private org.apache.hadoop.fs.FileSystem</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#fs">fs</a></span></code>&nbsp;</td>
+</tr>
+<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"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#htu">htu</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#seed">seed</a></span></code>&nbsp;</td>
 </tr>
@@ -197,73 +209,77 @@ extends <a href="http://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/util/TestFSUtils.html#testcomputeHDFSBlocksDistribution--">testcomputeHDFSBlocksDistribution</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#setUp--">setUp</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testDeleteAndExists--">testDeleteAndExists</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testcomputeHDFSBlocksDistribution--">testcomputeHDFSBlocksDistribution</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testDeleteAndExists--">testDeleteAndExists</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testDFSHedgedReadMetrics--">testDFSHedgedReadMetrics</a></span>()</code>
 <div class="block">Ugly test that ensures we can get at the hedged read counters in dfsclient.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<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/util/TestFSUtils.html#testGetWALRootDir--">testGetWALRootDir</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<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/util/TestFSUtils.html#testGetWALRootDirIllegalWALDir--">testGetWALRootDirIllegalWALDir</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<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/util/TestFSUtils.html#testIsHDFS--">testIsHDFS</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<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/util/TestFSUtils.html#testMatchingTail--">testMatchingTail</a></span>()</code>
 <div class="block">Test path compare and prefix checking.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testPermMask--">testPermMask</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<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/util/TestFSUtils.html#testRemoveWALRootPath--">testRemoveWALRootPath</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<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/util/TestFSUtils.html#testRenameAndSetModifyTime--">testRenameAndSetModifyTime</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testSetStoragePolicyDefault--">testSetStoragePolicyDefault</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testSetStoragePolicyInvalid--">testSetStoragePolicyInvalid</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testSetStoragePolicyValidButMaybeNotPresent--">testSetStoragePolicyValidButMaybeNotPresent</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testSetWALRootDir--">testSetWALRootDir</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#testVersion--">testVersion</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#verifyFileInDirWithStoragePolicy-java.lang.String-">verifyFileInDirWithStoragePolicy</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;policy)</code>&nbsp;</td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestFSUtils.html#WriteDataToHDFS-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-int-">WriteDataToHDFS</a></span>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                org.apache.hadoop.fs.Path&nbsp;file,
@@ -291,13 +307,40 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <!--   -->
 </a>
 <h3>Field Detail</h3>
+<a name="htu">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>htu</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.61">htu</a></pre>
+</li>
+</ul>
+<a name="fs">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>fs</h4>
+<pre>private&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.62">fs</a></pre>
+</li>
+</ul>
+<a name="conf">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>conf</h4>
+<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.63">conf</a></pre>
+</li>
+</ul>
 <a name="blockSize">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>blockSize</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.473">blockSize</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.457">blockSize</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.util.TestFSUtils.blockSize">Constant Field Values</a></dd>
@@ -310,7 +353,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>seed</h4>
-<pre>static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.474">seed</a></pre>
+<pre>static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.458">seed</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.util.TestFSUtils.seed">Constant Field Values</a></dd>
@@ -342,13 +385,27 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="setUp--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUp</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.66">setUp</a>()
+           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="testMatchingTail--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>testMatchingTail</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.65">testMatchingTail</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.77">testMatchingTail</a>()
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Test path compare and prefix checking.</div>
 <dl>
@@ -363,7 +420,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testVersion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.88">testVersion</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.98">testVersion</a>()
                  throws org.apache.hadoop.hbase.exceptions.DeserializationException,
                         <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -379,7 +436,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testIsHDFS</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.111">testIsHDFS</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.119">testIsHDFS</a>()
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -393,7 +450,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>WriteDataToHDFS</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.123">WriteDataToHDFS</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.130">WriteDataToHDFS</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                              org.apache.hadoop.fs.Path&nbsp;file,
                              int&nbsp;dataSize)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
@@ -409,7 +466,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testcomputeHDFSBlocksDistribution</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.131">testcomputeHDFSBlocksDistribution</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.138">testcomputeHDFSBlocksDistribution</a>()
                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -423,7 +480,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testPermMask</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.236">testPermMask</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.242">testPermMask</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -437,7 +494,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testDeleteAndExists</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.277">testDeleteAndExists</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.279">testDeleteAndExists</a>()
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -451,7 +508,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRenameAndSetModifyTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.307">testRenameAndSetModifyTime</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.306">testRenameAndSetModifyTime</a>()
                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -465,7 +522,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>verifyFileInDirWithStoragePolicy</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.345">verifyFileInDirWithStoragePolicy</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;policy)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.341">verifyFileInDirWithStoragePolicy</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;policy)
                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -479,7 +536,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetStoragePolicyDefault</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.372">testSetStoragePolicyDefault</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.366">testSetStoragePolicyDefault</a>()
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -493,7 +550,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetStoragePolicyValidButMaybeNotPresent</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.378">testSetStoragePolicyValidButMaybeNotPresent</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.372">testSetStoragePolicyValidButMaybeNotPresent</a>()
                                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -507,7 +564,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetStoragePolicyInvalid</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.384">testSetStoragePolicyInvalid</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.378">testSetStoragePolicyInvalid</a>()
                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -521,7 +578,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testSetWALRootDir</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.389">testSetWALRootDir</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.383">testSetWALRootDir</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -535,7 +592,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testGetWALRootDir</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.398">testGetWALRootDir</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.390">testGetWALRootDir</a>()
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -549,7 +606,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testGetWALRootDirIllegalWALDir</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.411">testGetWALRootDirIllegalWALDir</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.401">testGetWALRootDirIllegalWALDir</a>()
                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -563,7 +620,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testRemoveWALRootPath</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.422">testRemoveWALRootPath</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.410">testRemoveWALRootPath</a>()
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -577,7 +634,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>testDFSHedgedReadMetrics</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.441">testDFSHedgedReadMetrics</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.427">testDFSHedgedReadMetrics</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Ugly test that ensures we can get at the hedged read counters in dfsclient.
  Does a bit of preading with hedged reads enabled using code taken from hdfs TestPread.</div>
@@ -593,7 +650,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>pReadFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.476">pReadFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fileSys,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.460">pReadFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fileSys,
                        org.apache.hadoop.fs.Path&nbsp;name)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -608,7 +665,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>checkAndEraseData</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.539">checkAndEraseData</a>(byte[]&nbsp;actual,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.523">checkAndEraseData</a>(byte[]&nbsp;actual,
                                int&nbsp;from,
                                byte[]&nbsp;expected,
                                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
@@ -620,7 +677,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>doPread</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.548">doPread</a>(org.apache.hadoop.fs.FSDataInputStream&nbsp;stm,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.532">doPread</a>(org.apache.hadoop.fs.FSDataInputStream&nbsp;stm,
                      long&nbsp;position,
                      byte[]&nbsp;buffer,
                      int&nbsp;offset,
@@ -638,7 +695,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>cleanupFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.579">cleanupFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fileSys,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestFSUtils.html#line.563">cleanupFile</a>(org.apache.hadoop.fs.FileSystem&nbsp;fileSys,
                          org.apache.hadoop.fs.Path&nbsp;name)
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DisableTableProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.3

<TRUNCATED>

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

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

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

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


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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index d12d9e8..f97d37b 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -336,7 +336,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 14cb5cd..023538d 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -289,7 +289,7 @@
 <td>2156</td>
 <td>0</td>
 <td>0</td>
-<td>14355</td></tr></table></div>
+<td>14356</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -787,7 +787,7 @@
 <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>33</td></tr>
+<td>34</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncMetaRegionLocator.java</a></td>
 <td>0</td>
@@ -7064,7 +7064,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#NeedBraces">NeedBraces</a></td>
-<td>1931</td>
+<td>1933</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>coding</td>
@@ -7138,7 +7138,7 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_imports.html#UnusedImports">UnusedImports</a>
 <ul>
 <li>processJavadoc: <tt>&quot;true&quot;</tt></li></ul></td>
-<td>79</td>
+<td>78</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>indentation</td>
@@ -14540,203 +14540,209 @@
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.NamespaceDescriptor' import.</td>
-<td>54</td></tr>
+<td>55</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.HConstants' import.</td>
-<td>55</td></tr>
+<td>56</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.AsyncMetaTableAccessor' import.</td>
-<td>58</td></tr>
+<td>59</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
-<td>UnusedImports</td>
-<td>Unused import - org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair.</td>
-<td>86</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest' import.</td>
-<td>107</td></tr>
-<tr class="b">
+<td>114</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest' import.</td>
-<td>123</td></tr>
-<tr class="a">
+<td>130</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td>358</td></tr>
-<tr class="b">
+<td>366</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 10, expected level should be 22.</td>
-<td>401</td></tr>
-<tr class="a">
+<td>409</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 12, expected level should be 24.</td>
-<td>402</td></tr>
-<tr class="b">
+<td>410</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 12, expected level should be 24.</td>
-<td>403</td></tr>
-<tr class="a">
+<td>411</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 10, expected level should be 22.</td>
-<td>404</td></tr>
-<tr class="b">
+<td>412</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 10, expected level should be 22.</td>
-<td>405</td></tr>
-<tr class="a">
+<td>413</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 12, expected level should be 24.</td>
-<td>406</td></tr>
-<tr class="b">
+<td>414</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 10, expected level should be 22.</td>
-<td>407</td></tr>
-<tr class="a">
+<td>415</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'else' child have incorrect indentation level 12, expected level should be 24.</td>
-<td>408</td></tr>
-<tr class="b">
+<td>416</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'else rcurly' have incorrect indentation level 10, expected level should be 22.</td>
-<td>409</td></tr>
-<tr class="a">
+<td>417</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block rcurly' have incorrect indentation level 8, expected level should be 20.</td>
-<td>410</td></tr>
-<tr class="b">
+<td>418</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
-<td>633</td></tr>
-<tr class="a">
+<td>641</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
-<td>640</td></tr>
-<tr class="b">
+<td>648</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
-<td>694</td></tr>
-<tr class="a">
+<td>702</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 111).</td>
-<td>706</td></tr>
-<tr class="b">
+<td>714</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
-<td>744</td></tr>
+<td>752</td></tr>
+<tr class="b">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td>822</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>814</td></tr>
+<td>1100</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>967</td></tr>
+<td>1101</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>973</td></tr>
+<td>1243</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td>1249</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1080</td></tr>
-<tr class="a">
+<td>1356</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>1081</td></tr>
-<tr class="b">
+<td>1357</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>1254</td></tr>
-<tr class="a">
+<td>1530</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 111).</td>
-<td>1303</td></tr>
-<tr class="b">
+<td>1579</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
-<td>1385</td></tr>
-<tr class="a">
+<td>1661</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
-<td>1663</td></tr>
-<tr class="b">
+<td>1939</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
-<td>2129</td></tr></table></div>
+<td>2405</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncMetaRegionLocator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -14745,31 +14751,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncNonMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'locateType' must be private and have accessor methods.</td>
 <td>80</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'cache' must be private and have accessor methods.</td>
 <td>104</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'pendingRequests' must be private and have accessor methods.</td>
 <td>107</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
@@ -14778,73 +14784,73 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncProcess.java">org/apache/hadoop/hbase/client/AsyncProcess.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 108).</td>
 <td>226</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 112).</td>
 <td>231</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>317</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>326</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>387</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>403</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>438</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>439</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>440</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
 <td>466</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -14853,13 +14859,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncProcessTask.java">org/apache/hadoop/hbase/client/AsyncProcessTask.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -14868,13 +14874,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncRequestFuture.java">org/apache/hadoop/hbase/client/AsyncRequestFuture.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -14883,151 +14889,151 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.java">org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>104</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>138</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>141</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>151</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>173</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>225</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 115).</td>
 <td>407</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>425</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>445</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>461</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>463</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>477</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>481</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>503</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>524</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>541</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>554</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 110).</td>
 <td>606</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>632</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 108).</td>
 <td>657</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
 <td>780</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1109</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
 <td>1120</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15036,13 +15042,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCaller.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -15051,13 +15057,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -15066,13 +15072,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncSingleRequestRpcRetryingCaller.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -15081,25 +15087,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.AsyncTableImpl.java">org/apache/hadoop/hbase/client/AsyncTableImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
 <td>Using the '.*' form of import should be avoided - java.util.stream.Collectors.*.</td>
 <td>25</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.util.stream.Collectors.*' import.</td>
 <td>25</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -15108,13 +15114,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.BatchErrors.java">org/apache/hadoop/hbase/client/BatchErrors.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -15123,13 +15129,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.BufferedMutator.java">org/apache/hadoop/hbase/client/BufferedMutator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -15138,31 +15144,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.BufferedMutatorImpl.java">org/apache/hadoop/hbase/client/BufferedMutatorImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td>25</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.HConstants.</td>
 <td>36</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 106).</td>
 <td>114</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -15171,25 +15177,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.CancellableRegionServerCallable.java">org/apache/hadoop/hbase/client/CancellableRegionServerCallable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController' import.</td>
 <td>27</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>55</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15198,19 +15204,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ClientAsyncPrefetchScanner.java">org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.client.ConnectionUtils.calcEstimatedSize' import.</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15219,13 +15225,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ClientIdGenerator.java">org/apache/hadoop/hbase/client/ClientIdGenerator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
@@ -15234,19 +15240,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ClientScanner.java">org/apache/hadoop/hbase/client/ClientScanner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>97</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15255,19 +15261,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ClientServiceCallable.java">org/apache/hadoop/hbase/client/ClientServiceCallable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController' import.</td>
 <td>25</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -15276,13 +15282,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ClusterStatusListener.java">org/apache/hadoop/hbase/client/ClusterStatusListener.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -15291,19 +15297,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.CompactType.java">org/apache/hadoop/hbase/client/CompactType.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>29</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
@@ -15312,13 +15318,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ConnectionConfiguration.java">org/apache/hadoop/hbase/client/ConnectionConfiguration.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -15327,19 +15333,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ConnectionFactory.java">org/apache/hadoop/hbase/client/ConnectionFactory.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>58</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -15348,31 +15354,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ConnectionImplementation.java">org/apache/hadoop/hbase/client/ConnectionImplementation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td>121</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>1015</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 492 lines (max allowed is 150).</td>
 <td>1249</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>NoFinalizer</td>
@@ -15381,25 +15387,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.CoprocessorHConnection.java">org/apache/hadoop/hbase/client/CoprocessorHConnection.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>70</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>79</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -15408,25 +15414,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.DelayingRunner.java">org/apache/hadoop/hbase/client/DelayingRunner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.util.List' import.</td>
 <td>25</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>81</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -15435,43 +15441,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.Delete.java">org/apache/hadoop/hbase/client/Delete.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>112</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>113</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>129</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>130</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>157</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -15480,61 +15486,61 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.Get.java">org/apache/hadoop/hbase/client/Get.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>95</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>134</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>135</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>136</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>145</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>221</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>330</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>340</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -15543,493 +15549,493 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.HBaseAdmin.java">org/apache/hadoop/hbase/client/HBaseAdmin.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - java.util.Map.Entry.</td>
 <td>32</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair.</td>
 <td>109</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td>205</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>300</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>302</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>304</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>305</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 8, 10.</td>
 <td>306</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>429</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>432</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>434</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>436</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>437</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 14, 16.</td>
 <td>438</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>439</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>440</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>441</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 8, 10.</td>
 <td>442</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>618</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1233</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1234</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>1262</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>1472</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>1509</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>1528</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>1546</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>1564</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>1585</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>1590</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>1594</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>1603</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>1605</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>1611</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>1612</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 8, 10.</td>
 <td>1613</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1667</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1670</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1672</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 7, expected level should be 6.</td>
 <td>1706</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>1773</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>1775</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>1776</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>1777</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1808</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Javadoc comment at column 64 has parse error. Missed HTML close tag 'code'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>1956</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>1988</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>1990</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>1993</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 8, 10.</td>
 <td>1994</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>2015</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>2018</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 7, expected level should be one of the following: 10, 12.</td>
 <td>2020</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 8, 10.</td>
 <td>2021</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 10, 12.</td>
 <td>2042</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 12, 14.</td>
 <td>2045</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>2047</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
 <td>2048</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>2173</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>2190</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'try' child have incorrect indentation level 10, expected level should be 8.</td>
 <td>2210</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>2329</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
 <td>2753</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>2755</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>2760</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
 <td>2761</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
 <td>2762</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 110).</td>
 <td>2889</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 10, expected level should be one of the following: 12, 14, 16.</td>
 <td>2974</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 12, expected level should be one of the following: 14, 16, 18.</td>
 <td>2976</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 12, expected level should be one of the following: 14, 16, 18.</td>
 <td>2978</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 10, expected level should be one of the following: 12, 14, 16.</td>
 <td>2979</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12, 14.</td>
 <td>2980</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3188</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3189</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3649</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3652</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>3930</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>4085</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>4193</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>4194</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -16038,19 +16044,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.HRegionLocator.java">org/apache/hadoop/hbase/client/HRegionLocator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td>25</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16059,157 +16065,157 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.HTable.java">org/apache/hadoop/hbase/client/HTable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>208</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 108).</td>
 <td>407</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>592</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>602</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>667</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 113).</td>
 <td>752</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>914</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>915</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>943</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>1041</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>1145</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>1159</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>1165</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>1177</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 34 should have line break after.</td>
 <td>1187</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>1189</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
 <td>1208</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>1210</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be one of the following: 12, 14.</td>
 <td>1211</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be one of the following: 10, 12.</td>
 <td>1212</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 6, expected level should be one of the following: 8, 10.</td>
 <td>1213</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 6, 8.</td>
 <td>1214</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>1247</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'=' have incorrect indentation level 4, expected level should be 6.</td>
 <td>1270</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -16218,37 +16224,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.HTableMultiplexer.java">org/apache/hadoop/hbase/client/HTableMultiplexer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>143</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>144</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>154</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>155</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16257,55 +16263,55 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.HTableWrapper.java">org/apache/hadoop/hbase/client/HTableWrapper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>69</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 5, expected level should be 4.</td>
 <td>270</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>310</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 55 should have line break after.</td>
 <td>317</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 53 should have line break after.</td>
 <td>320</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>322</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 35 should have line break after.</td>
 <td>329</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
@@ -16314,19 +16320,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.ImmutableHTableDescriptor.java">org/apache/hadoop/hbase/client/ImmutableHTableDescriptor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>30</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
@@ -16335,13 +16341,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.Increment.java">org/apache/hadoop/hbase/client/Increment.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -16350,19 +16356,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.MasterCallable.java">org/apache/hadoop/hbase/client/MasterCallable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 111).</td>
 <td>83</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -16371,43 +16377,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.MetaCache.java">org/apache/hadoop/hbase/client/MetaCache.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>81</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>102</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>107</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>192</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>295</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -16416,241 +16422,241 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.MetricsConnection.java">org/apache/hadoop/hbase/client/MetricsConnection.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>415</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>417</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>418</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>419</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>421</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'switch' have incorrect indentation level 8, expected level should be 10.</td>
 <td>422</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 8, expected level should be 12.</td>
 <td>423</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>424</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>425</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 8, expected level should be 12.</td>
 <td>426</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>427</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>428</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 8, expected level should be 12.</td>
 <td>429</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>430</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>431</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 8, expected level should be 12.</td>
 <td>432</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>433</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>434</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 8, expected level should be 12.</td>
 <td>435</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 10, expected level should be 14.</td>
 <td>436</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'switch rcurly' have incorrect indentation level 8, expected level should be 10.</td>
 <td>437</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>438</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>440</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>441</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>442</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>445</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>446</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>449</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>450</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>453</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>454</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>457</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>458</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>461</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>462</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>464</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>465</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>466</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -16659,25 +16665,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.MultiAction.java">org/apache/hadoop/hbase/client/MultiAction.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>67</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>68</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -16686,13 +16692,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.MultiResponse.java">org/apache/hadoop/hbase/client/MultiResponse.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -16701,49 +16707,49 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.MultiServerCallable.java">org/apache/hadoop/hbase/client/MultiServerCallable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController' import.</td>
 <td>41</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td>43</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>49</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>91</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>110</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>127</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
@@ -16752,133 +16758,133 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.Mutation.java">org/apache/hadoop/hbase/client/Mutation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.collect.ArrayListMultimap' import.</td>
 <td>53</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>126</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>127</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>128</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>129</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>237</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>331</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>341</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_err

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.DeleteColumnFamilyProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesLi

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.Converter.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
+<span class="sourceLineNo">398</spa

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.CreateTableProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.396"><

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
index 8750fa2..4fd4af0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/AsyncHBaseAdmin.ModifyNamespaceProcedureBiConsumer.html
@@ -48,2133 +48,2409 @@
 <span class="sourceLineNo">040</span><a name="line.40"></a>
 <span class="sourceLineNo">041</span>import io.netty.util.Timeout;<a name="line.41"></a>
 <span class="sourceLineNo">042</span>import io.netty.util.TimerTask;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.commons.logging.Log;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.commons.logging.LogFactory;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.ServerName;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.HConstants;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableName;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.Pair;<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> * The implementation of AsyncAdmin.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span>@InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>@InterfaceStability.Evolving<a name="line.186"></a>
-<span class="sourceLineNo">187</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.187"></a>
+<span class="sourceLineNo">043</span>import org.apache.commons.io.IOUtils;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.commons.logging.Log;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.commons.logging.LogFactory;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.HRegionLocation;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.MetaTableAccessor.QueryType;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.ProcedureInfo;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.RegionLocations;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.ServerName;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.HConstants;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.TableExistsException;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.TableName;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.AsyncMetaTableAccessor;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.TableNotDisabledException;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.TableNotEnabledException;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.AdminRequestCallerBuilder;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.MasterRequestCallerBuilder;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.client.Scan.ReadType;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.client.replication.ReplicationSerDeHelper;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.client.replication.TableCFs;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.exceptions.DeserializationException;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.ipc.HBaseRpcController;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.quotas.QuotaFilter;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.quotas.QuotaSettings;<a name="line.74"></a>
+<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.quotas.QuotaTableUtil;<a name="line.75"></a>
+<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcCallback;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.80"></a>
+<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionRequest;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.SplitRegionResponse;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableSchema;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureRequest;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AbortProcedureResponse;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnRequest;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AddColumnResponse;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionRequest;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.AssignRegionResponse;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceRequest;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.BalanceResponse;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceRequest;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateNamespaceResponse;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceRequest;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteNamespaceResponse;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotRequest;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteSnapshotResponse;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableRequest;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DisableTableResponse;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableRequest;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.EnableTableResponse;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnRequest;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteColumnResponse;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureRequest;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsRequest;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetCompletedSnapshotsResponse;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorRequest;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetNamespaceDescriptorResponse;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetSchemaAlterStatusResponse;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableDescriptorsResponse;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesRequest;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetTableNamesResponse;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableRequest;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableRequest;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.DeleteTableResponse;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledRequest;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsBalancerEnabledResponse;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneRequest;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneRequest;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsSnapshotDoneResponse;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresRequest;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ListProceduresResponse;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MasterService;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsRequest;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MergeTableRegionsResponse;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnRequest;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyColumnResponse;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceRequest;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ModifyNamespaceResponse;<a name="line.150"></a>
+<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionRequest;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.MoveRegionResponse;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionRequest;<a name="line.153"></a>
+<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.OfflineRegionResponse;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotRequest;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.RestoreSnapshotResponse;<a name="line.156"></a>
+<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningRequest;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetBalancerRunningResponse;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaResponse;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotRequest;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SnapshotResponse;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableRequest;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.TruncateTableResponse;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionRequest;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.UnassignRegionResponse;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerRequest;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.AddReplicationPeerResponse;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerRequest;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.DisableReplicationPeerResponse;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerRequest;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.EnableReplicationPeerResponse;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigRequest;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.GetReplicationPeerConfigResponse;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersRequest;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.ListReplicationPeersResponse;<a name="line.176"></a>
+<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerRequest;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.RemoveReplicationPeerResponse;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigRequest;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ReplicationProtos.UpdateReplicationPeerConfigResponse;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.snapshot.ClientSnapshotDescriptionUtils;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.snapshot.RestoreSnapshotException;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.snapshot.SnapshotCreationException;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.ForeignExceptionUtil;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final AsyncConnectionImpl connection;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  private final RawAsyncTable metaTable;<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  private final long rpcTimeoutNs;<a name="line.195"></a>
+<span class="sourceLineNo">189</span>/**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * The implementation of AsyncAdmin.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>@InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>@InterfaceStability.Evolving<a name="line.193"></a>
+<span class="sourceLineNo">194</span>public class AsyncHBaseAdmin implements AsyncAdmin {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  public static final String FLUSH_TABLE_PROCEDURE_SIGNATURE = "flush-table-proc";<a name="line.195"></a>
 <span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final long operationTimeoutNs;<a name="line.197"></a>
+<span class="sourceLineNo">197</span>  private static final Log LOG = LogFactory.getLog(AsyncHBaseAdmin.class);<a name="line.197"></a>
 <span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  private final long pauseNs;<a name="line.199"></a>
+<span class="sourceLineNo">199</span>  private final AsyncConnectionImpl connection;<a name="line.199"></a>
 <span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  private final int maxAttempts;<a name="line.201"></a>
+<span class="sourceLineNo">201</span>  private final RawAsyncTable metaTable;<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private final int startLogErrorsCnt;<a name="line.203"></a>
+<span class="sourceLineNo">203</span>  private final long rpcTimeoutNs;<a name="line.203"></a>
 <span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  private final NonceGenerator ng;<a name="line.205"></a>
+<span class="sourceLineNo">205</span>  private final long operationTimeoutNs;<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    this.connection = connection;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    this.ng = connection.getNonceGenerator();<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.223"></a>
+<span class="sourceLineNo">207</span>  private final long pauseNs;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final int maxAttempts;<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private final int startLogErrorsCnt;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final NonceGenerator ng;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>  AsyncHBaseAdmin(AsyncConnectionImpl connection) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    this.connection = connection;<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    this.metaTable = connection.getRawTable(META_TABLE_NAME);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this.rpcTimeoutNs = connection.connConf.getRpcTimeoutNs();<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    this.operationTimeoutNs = connection.connConf.getOperationTimeoutNs();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    this.pauseNs = connection.connConf.getPauseNs();<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.maxAttempts = connection.connConf.getMaxRetries();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    this.startLogErrorsCnt = connection.connConf.getStartLogErrorsCnt();<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    this.ng = connection.getNonceGenerator();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>  }<a name="line.224"></a>
 <span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>  private &lt;T&gt; MasterRequestCallerBuilder&lt;T&gt; newMasterCaller() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    return this.connection.callerFactory.&lt;T&gt; masterRequest()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.229"></a>
 <span class="sourceLineNo">230</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.230"></a>
 <span class="sourceLineNo">231</span>        .startLogErrorsCnt(startLogErrorsCnt);<a name="line.231"></a>
 <span class="sourceLineNo">232</span>  }<a name="line.232"></a>
 <span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @FunctionalInterface<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        RpcCallback&lt;RESP&gt; done);<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>  @FunctionalInterface<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        RpcCallback&lt;RESP&gt; done);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  @FunctionalInterface<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  private interface Converter&lt;D, S&gt; {<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>      @Override<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      public void run(PRESP resp) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        if (controller.failed()) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          future.completeExceptionally(controller.getFailed());<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        } else {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          try {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>            future.complete(respConverter.convert(resp));<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          } catch (IOException e) {<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            future.completeExceptionally(e);<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>      }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>    });<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    return future;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  //TODO abstract call and adminCall into a single method.<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.278"></a>
-<span class="sourceLineNo">279</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.279"></a>
+<span class="sourceLineNo">234</span>  private &lt;T&gt; AdminRequestCallerBuilder&lt;T&gt; newAdminCaller() {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return this.connection.callerFactory.&lt;T&gt; adminRequest()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        .rpcTimeout(rpcTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        .operationTimeout(operationTimeoutNs, TimeUnit.NANOSECONDS)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        .pause(pauseNs, TimeUnit.NANOSECONDS).maxAttempts(maxAttempts)<a name="line.238"></a>
+<span class="sourceLineNo">239</span>        .startLogErrorsCnt(startLogErrorsCnt);<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>  @FunctionalInterface<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  private interface MasterRpcCall&lt;RESP, REQ&gt; {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    void call(MasterService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.244"></a>
+<span class="sourceLineNo">245</span>        RpcCallback&lt;RESP&gt; done);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @FunctionalInterface<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private interface AdminRpcCall&lt;RESP, REQ&gt; {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    void call(AdminService.Interface stub, HBaseRpcController controller, REQ req,<a name="line.250"></a>
+<span class="sourceLineNo">251</span>        RpcCallback&lt;RESP&gt; done);<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  @FunctionalInterface<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  private interface Converter&lt;D, S&gt; {<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    D convert(S src) throws IOException;<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>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; call(HBaseRpcController controller,<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      MasterService.Interface stub, PREQ preq, MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>      @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      public void run(PRESP resp) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>        if (controller.failed()) {<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          future.completeExceptionally(controller.getFailed());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        } else {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          try {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>            future.complete(respConverter.convert(resp));<a name="line.271"></a>
+<span class="sourceLineNo">272</span>          } catch (IOException e) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            future.completeExceptionally(e);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>      }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    });<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    return future;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
 <span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      public void run(PRESP resp) {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>        if (controller.failed()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.284"></a>
-<span class="sourceLineNo">285</span>        } else {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>          try {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>            future.complete(respConverter.convert(resp));<a name="line.287"></a>
-<span class="sourceLineNo">288</span>          } catch (IOException e) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>            future.completeExceptionally(e);<a name="line.289"></a>
-<span class="sourceLineNo">290</span>          }<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>      }<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    });<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    return future;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  }<a name="line.295"></a>
-<span class="sourceLineNo">296</span><a name="line.296"></a>
-<span class="sourceLineNo">297</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      ProcedureBiConsumer consumer) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        .&lt;Long&gt; newMasterCaller()<a name="line.301"></a>
-<span class="sourceLineNo">302</span>        .action(<a name="line.302"></a>
-<span class="sourceLineNo">303</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.303"></a>
-<span class="sourceLineNo">304</span>            respConverter)).call();<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>  @FunctionalInterface<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private interface TableOperator {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<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>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      TableOperator operator, String operationType) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    listTables(pattern, false).whenComplete(<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      (tables, error) -&gt; {<a name="line.318"></a>
-<span class="sourceLineNo">319</span>        if (error != null) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>          future.completeExceptionally(error);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>          return;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        }<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.323"></a>
-<span class="sourceLineNo">324</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>              if (ex != null) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>                failed.add(table);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>              }<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<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>    return future;<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  @Override<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  public AsyncConnectionImpl getConnection() {<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    return this.connection;<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  }<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  @Override<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  @Override<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    return listTables((Pattern) null, false);<a name="line.349"></a>
-<span class="sourceLineNo">350</span>  }<a name="line.350"></a>
-<span class="sourceLineNo">351</span><a name="line.351"></a>
-<span class="sourceLineNo">352</span>  @Override<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    return listTables(Pattern.compile(regex), false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  @Override<a name="line.357"></a>
-<span class="sourceLineNo">358</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    return this<a name="line.359"></a>
-<span class="sourceLineNo">360</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        .action(<a name="line.361"></a>
-<span class="sourceLineNo">362</span>          (controller, stub) -&gt; this<a name="line.362"></a>
-<span class="sourceLineNo">363</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.363"></a>
-<span class="sourceLineNo">364</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.365"></a>
-<span class="sourceLineNo">366</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span>  @Override<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return listTableNames((Pattern) null, false);<a name="line.371"></a>
-<span class="sourceLineNo">372</span>  }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>  @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.376"></a>
-<span class="sourceLineNo">377</span>  }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @Override<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    return this<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.382"></a>
-<span class="sourceLineNo">383</span>        .action(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>          (controller, stub) -&gt; this<a name="line.384"></a>
-<span class="sourceLineNo">385</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.385"></a>
-<span class="sourceLineNo">386</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.386"></a>
-<span class="sourceLineNo">387</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.387"></a>
-<span class="sourceLineNo">388</span>                    .getTableNameArray(resp.getTableNamesList()))).call();<a name="line.388"></a>
-<span class="sourceLineNo">389</span>  }<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span>  @Override<a name="line.391"></a>
-<span class="sourceLineNo">392</span>  public CompletableFuture&lt;TableDescriptor&gt; getTableDescriptor(TableName tableName) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    CompletableFuture&lt;TableDescriptor&gt; future = new CompletableFuture&lt;&gt;();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    this.&lt;List&lt;TableSchema&gt;&gt; newMasterCaller()<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        .action(<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          (controller, stub) -&gt; this<a name="line.396"></a>
-<span class="sourceLineNo">397</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, List&lt;TableSchema&gt;&gt; call(<a name="line.397"></a>
-<span class="sourceLineNo">398</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(tableName), (s,<a name="line.398"></a>
-<span class="sourceLineNo">399</span>                    c, req, done) -&gt; s.getTableDescriptors(c, req, done), (resp) -&gt; resp<a name="line.399"></a>
-<span class="sourceLineNo">400</span>                    .getTableSchemaList())).call().whenComplete((tableSchemas, error) -&gt; {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          if (error != null) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span>            future.completeExceptionally(error);<a name="line.402"></a>
-<span class="sourceLineNo">403</span>            return;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>          }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>          if (!tableSchemas.isEmpty()) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>            future.complete(ProtobufUtil.convertToTableDesc(tableSchemas.get(0)));<a name="line.406"></a>
-<span class="sourceLineNo">407</span>          } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>            future.completeExceptionally(new TableNotFoundException(tableName.getNameAsString()));<a name="line.408"></a>
-<span class="sourceLineNo">409</span>          }<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        });<a name="line.410"></a>
-<span class="sourceLineNo">411</span>    return future;<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>  @Override<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>    return createTable(desc, null);<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  @Override<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[] startKey, byte[] endKey,<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      int numRegions) {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    try {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return createTable(desc, getSplitKeys(startKey, endKey, numRegions));<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    } catch (IllegalArgumentException e) {<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      return failedFuture(e);<a name="line.425"></a>
-<span class="sourceLineNo">426</span>    }<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  @Override<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public CompletableFuture&lt;Void&gt; createTable(TableDescriptor desc, byte[][] splitKeys) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    if (desc.getTableName() == null) {<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      return failedFuture(new IllegalArgumentException("TableName cannot be null"));<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
-<span class="sourceLineNo">434</span>    if (splitKeys != null &amp;&amp; splitKeys.length &gt; 0) {<a name="line.434"></a>
-<span class="sourceLineNo">435</span>      Arrays.sort(splitKeys, Bytes.BYTES_COMPARATOR);<a name="line.435"></a>
-<span class="sourceLineNo">436</span>      // Verify there are no duplicate split keys<a name="line.436"></a>
-<span class="sourceLineNo">437</span>      byte[] lastKey = null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span>      for (byte[] splitKey : splitKeys) {<a name="line.438"></a>
-<span class="sourceLineNo">439</span>        if (Bytes.compareTo(splitKey, HConstants.EMPTY_BYTE_ARRAY) == 0) {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>          return failedFuture(new IllegalArgumentException(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>              "Empty split key must not be passed in the split keys."));<a name="line.441"></a>
-<span class="sourceLineNo">442</span>        }<a name="line.442"></a>
-<span class="sourceLineNo">443</span>        if (lastKey != null &amp;&amp; Bytes.equals(splitKey, lastKey)) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>          return failedFuture(new IllegalArgumentException("All split keys must be unique, "<a name="line.444"></a>
-<span class="sourceLineNo">445</span>              + "found duplicate: " + Bytes.toStringBinary(splitKey) + ", "<a name="line.445"></a>
-<span class="sourceLineNo">446</span>              + Bytes.toStringBinary(lastKey)));<a name="line.446"></a>
-<span class="sourceLineNo">447</span>        }<a name="line.447"></a>
-<span class="sourceLineNo">448</span>        lastKey = splitKey;<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      }<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    return this.&lt;CreateTableRequest, CreateTableResponse&gt; procedureCall(<a name="line.452"></a>
-<span class="sourceLineNo">453</span>      RequestConverter.buildCreateTableRequest(desc, splitKeys, ng.getNonceGroup(), ng.newNonce()),<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      (s, c, req, done) -&gt; s.createTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      new CreateTableProcedureBiConsumer(this, desc.getTableName()));<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>  @Override<a name="line.458"></a>
-<span class="sourceLineNo">459</span>  public CompletableFuture&lt;Void&gt; deleteTable(TableName tableName) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    return this.&lt;DeleteTableRequest, DeleteTableResponse&gt; procedureCall(RequestConverter<a name="line.460"></a>
-<span class="sourceLineNo">461</span>        .buildDeleteTableRequest(tableName, ng.getNonceGroup(), ng.newNonce()),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      (s, c, req, done) -&gt; s.deleteTable(c, req, done), (resp) -&gt; resp.getProcId(),<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      new DeleteTableProcedureBiConsumer(this, tableName));<a name="line.463"></a>
+<span class="sourceLineNo">281</span>  //TODO abstract call and adminCall into a single method.<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  private &lt;PREQ, PRESP, RESP&gt; CompletableFuture&lt;RESP&gt; adminCall(HBaseRpcController controller,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      AdminService.Interface stub, PREQ preq, AdminRpcCall&lt;PRESP, PREQ&gt; rpcCall,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      Converter&lt;RESP, PRESP&gt; respConverter) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span><a name="line.285"></a>
+<span class="sourceLineNo">286</span>    CompletableFuture&lt;RESP&gt; future = new CompletableFuture&lt;&gt;();<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    rpcCall.call(stub, controller, preq, new RpcCallback&lt;PRESP&gt;() {<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>      @Override<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      public void run(PRESP resp) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        if (controller.failed()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>          future.completeExceptionally(new IOException(controller.errorText()));<a name="line.292"></a>
+<span class="sourceLineNo">293</span>        } else {<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          try {<a name="line.294"></a>
+<span class="sourceLineNo">295</span>            future.complete(respConverter.convert(resp));<a name="line.295"></a>
+<span class="sourceLineNo">296</span>          } catch (IOException e) {<a name="line.296"></a>
+<span class="sourceLineNo">297</span>            future.completeExceptionally(e);<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>    });<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    return future;<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
+<span class="sourceLineNo">304</span><a name="line.304"></a>
+<span class="sourceLineNo">305</span>  private &lt;PREQ, PRESP&gt; CompletableFuture&lt;Void&gt; procedureCall(PREQ preq,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      MasterRpcCall&lt;PRESP, PREQ&gt; rpcCall, Converter&lt;Long, PRESP&gt; respConverter,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      ProcedureBiConsumer consumer) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    CompletableFuture&lt;Long&gt; procFuture = this<a name="line.308"></a>
+<span class="sourceLineNo">309</span>        .&lt;Long&gt; newMasterCaller()<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        .action(<a name="line.310"></a>
+<span class="sourceLineNo">311</span>          (controller, stub) -&gt; this.&lt;PREQ, PRESP, Long&gt; call(controller, stub, preq, rpcCall,<a name="line.311"></a>
+<span class="sourceLineNo">312</span>            respConverter)).call();<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return waitProcedureResult(procFuture).whenComplete(consumer);<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>  @FunctionalInterface<a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private interface TableOperator {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    CompletableFuture&lt;Void&gt; operate(TableName table);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  private CompletableFuture&lt;TableDescriptor[]&gt; batchTableOperations(Pattern pattern,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>      TableOperator operator, String operationType) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    CompletableFuture&lt;TableDescriptor[]&gt; future = new CompletableFuture&lt;&gt;();<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    List&lt;TableDescriptor&gt; failed = new LinkedList&lt;&gt;();<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    listTables(pattern, false).whenComplete(<a name="line.325"></a>
+<span class="sourceLineNo">326</span>      (tables, error) -&gt; {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>        if (error != null) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>          future.completeExceptionally(error);<a name="line.328"></a>
+<span class="sourceLineNo">329</span>          return;<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        }<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        CompletableFuture[] futures = Arrays.stream(tables)<a name="line.331"></a>
+<span class="sourceLineNo">332</span>            .map((table) -&gt; operator.operate(table.getTableName()).whenComplete((v, ex) -&gt; {<a name="line.332"></a>
+<span class="sourceLineNo">333</span>              if (ex != null) {<a name="line.333"></a>
+<span class="sourceLineNo">334</span>                LOG.info("Failed to " + operationType + " table " + table.getTableName(), ex);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>                failed.add(table);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>              }<a name="line.336"></a>
+<span class="sourceLineNo">337</span>            })).&lt;CompletableFuture&gt; toArray(size -&gt; new CompletableFuture[size]);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        CompletableFuture.allOf(futures).thenAccept((v) -&gt; {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>          future.complete(failed.toArray(new TableDescriptor[failed.size()]));<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        });<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      });<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return future;<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>  @Override<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  public AsyncConnectionImpl getConnection() {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    return this.connection;<a name="line.347"></a>
+<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>  @Override<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  public CompletableFuture&lt;Boolean&gt; tableExists(TableName tableName) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    return AsyncMetaTableAccessor.tableExists(metaTable, tableName);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  @Override<a name="line.355"></a>
+<span class="sourceLineNo">356</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables() {<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return listTables((Pattern) null, false);<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>  @Override<a name="line.360"></a>
+<span class="sourceLineNo">361</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(String regex, boolean includeSysTables) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    return listTables(Pattern.compile(regex), false);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>  @Override<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  public CompletableFuture&lt;TableDescriptor[]&gt; listTables(Pattern pattern, boolean includeSysTables) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>    return this<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        .&lt;TableDescriptor[]&gt;newMasterCaller()<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        .action(<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          (controller, stub) -&gt; this<a name="line.370"></a>
+<span class="sourceLineNo">371</span>              .&lt;GetTableDescriptorsRequest, GetTableDescriptorsResponse, TableDescriptor[]&gt; call(<a name="line.371"></a>
+<span class="sourceLineNo">372</span>                controller, stub, RequestConverter.buildGetTableDescriptorsRequest(pattern,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>                  includeSysTables), (s, c, req, done) -&gt; s.getTableDescriptors(c, req, done), (<a name="line.373"></a>
+<span class="sourceLineNo">374</span>                    resp) -&gt; ProtobufUtil.getTableDescriptorArray(resp))).call();<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>  @Override<a name="line.377"></a>
+<span class="sourceLineNo">378</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames() {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    return listTableNames((Pattern) null, false);<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>  @Override<a name="line.382"></a>
+<span class="sourceLineNo">383</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(String regex, boolean includeSysTables) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span>    return listTableNames(Pattern.compile(regex), false);<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  }<a name="line.385"></a>
+<span class="sourceLineNo">386</span><a name="line.386"></a>
+<span class="sourceLineNo">387</span>  @Override<a name="line.387"></a>
+<span class="sourceLineNo">388</span>  public CompletableFuture&lt;TableName[]&gt; listTableNames(Pattern pattern, boolean includeSysTables) {<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    return this<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        .&lt;TableName[]&gt;newMasterCaller()<a name="line.390"></a>
+<span class="sourceLineNo">391</span>        .action(<a name="line.391"></a>
+<span class="sourceLineNo">392</span>          (controller, stub) -&gt; this<a name="line.392"></a>
+<span class="sourceLineNo">393</span>              .&lt;GetTableNamesRequest, GetTableNamesResponse, TableName[]&gt; call(controller, stub,<a name="line.393"></a>
+<span class="sourceLineNo">394</span>                RequestConverter.buildGetTableNamesRequest(pattern, includeSysTables), (s, c, req,<a name="line.394"></a>
+<span class="sourceLineNo">395</span>                    done) -&gt; s.getTableNames(c, req, done), (resp) -&gt; ProtobufUtil<a name="line.395"></a>
+<span class="sourceLineNo">396</span>                    .getTableNameArray(resp.getTableNamesList()))).call();

<TRUNCATED>

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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 134bf3c..bee356a 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2017 The Apache Software Foundation</copyright>
     <item>
       <title>File: 2156,
-             Errors: 14355,
+             Errors: 14356,
              Warnings: 0,
              Infos: 0
       </title>
@@ -10037,7 +10037,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  33
+                  34
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index f9af06b..e4e3489 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -380,7 +380,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 14b7415..e5bd4aa 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -524,7 +524,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index dc7c5da..9d7713a 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1849,7 +1849,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 1c789a1..52f46c6 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -318,7 +318,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 638ee63..0445f76 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="20170504" />
+    <meta name="Date-Revision-yyyymmdd" content="20170505" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -894,7 +894,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-05-04</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-05-05</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 34da0bf..77f0af8 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3801,21 +3801,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Thu May  4 14:39:02 UTC 2017"</code></td>
+<td class="colLast"><code>"Fri May  5 14:38:49 UTC 2017"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"2de6b051f67b6a55eda8d4e247328fda24484adb"</code></td>
+<td class="colLast"><code>"2026540ea347e9359e6ac8cf8b3701cd3872a515"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"f7cfe544cca51d154aee357b8d8e159d"</code></td>
+<td class="colLast"><code>"54f389bd1b972e2318608b4907b1209d"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -4820,6 +4820,25 @@
 </li>
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.client.AsyncHBaseAdmin.FLUSH_TABLE_PROCEDURE_SIGNATURE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#FLUSH_TABLE_PROCEDURE_SIGNATURE">FLUSH_TABLE_PROCEDURE_SIGNATURE</a></code></td>
+<td class="colLast"><code>"flush-table-proc"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.hadoop.hbase.client.org.apache.hadoop.hbase.client.AsyncNonMetaRegionLocator</span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 4b7cd3e..8417df7 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -13263,6 +13263,26 @@
 <dd>
 <div class="block">Compact a column family within a table.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#compact-org.apache.hadoop.hbase.TableName-">compact(TableName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Compact a table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-">compact(TableName, byte[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Compact a column family within a table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-">compact(TableName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-">compact(TableName, byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-boolean-org.apache.hadoop.hbase.client.CompactType-">compact(TableName, byte[], boolean, CompactType)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>
+<div class="block">Compact column family of a table, Asynchronous operation even if CompletableFuture.get()</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-boolean-byte:A-">compact(ServerName, HRegionInfo, boolean, byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>
+<div class="block">Compact the region at specific region server.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-">compact(TableName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>
 <div class="block">Compact a table.</div>
@@ -13737,6 +13757,20 @@
 <dd>
 <div class="block">Compact a column family within a region.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#compactRegion-byte:A-">compactRegion(byte[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Compact an individual region.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#compactRegion-byte:A-byte:A-">compactRegion(byte[], byte[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Compact a column family within a region.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegion-byte:A-">compactRegion(byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegion-byte:A-byte:A-">compactRegion(byte[], byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegion-byte:A-byte:A-boolean-">compactRegion(byte[], byte[], boolean)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#compactRegion-byte:A-">compactRegion(byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#compactRegion-byte:A-byte:A-">compactRegion(byte[], byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
@@ -13761,6 +13795,14 @@
 <dd>
 <div class="block">Compact all regions on the region server</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-">compactRegionServer(ServerName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Compact all regions on the region server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-">compactRegionServer(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-boolean-">compactRegionServer(ServerName, boolean)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-boolean-">compactRegionServer(ServerName, boolean)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>
 <div class="block">Compact all regions on the region server</div>
@@ -29475,6 +29517,12 @@
 <dd>
 <div class="block">Flush a table.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#flush-org.apache.hadoop.hbase.TableName-">flush(TableName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Flush a table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#flush-org.apache.hadoop.hbase.TableName-">flush(TableName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/BufferedMutator.html#flush--">flush()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client">BufferedMutator</a></dt>
 <dd>
 <div class="block">Executes all the buffered, asynchronous <a href="org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client"><code>Mutation</code></a> operations and waits until they
@@ -29570,6 +29618,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.html#FLUSH_REQUEST_WAKE_MILLIS_KEY">FLUSH_REQUEST_WAKE_MILLIS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.procedure.flush.<a href="org/apache/hadoop/hbase/procedure/flush/RegionServerFlushTableProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure.flush">RegionServerFlushTableProcedureManager</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#FLUSH_TABLE_PROCEDURE_SIGNATURE">FLUSH_TABLE_PROCEDURE_SIGNATURE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure/flush/MasterFlushTableProcedureManager.html#FLUSH_TABLE_PROCEDURE_SIGNATURE">FLUSH_TABLE_PROCEDURE_SIGNATURE</a></span> - Static variable in class org.apache.hadoop.hbase.procedure.flush.<a href="org/apache/hadoop/hbase/procedure/flush/MasterFlushTableProcedureManager.html" title="class in org.apache.hadoop.hbase.procedure.flush">MasterFlushTableProcedureManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#FLUSH_TIME">FLUSH_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
@@ -29754,6 +29804,12 @@
 <dd>
 <div class="block">Flush an individual region.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#flushRegion-byte:A-">flushRegion(byte[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Flush an individual region.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#flushRegion-byte:A-">flushRegion(byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#flushRegion-byte:A-">flushRegion(byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html#flushRegion-org.apache.hadoop.hbase.regionserver.MemStoreFlusher.FlushRegionEntry-">flushRegion(MemStoreFlusher.FlushRegionEntry)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a></dt>
@@ -40550,6 +40606,12 @@
 <dd>
 <div class="block">Get all the online regions on a region server.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions(ServerName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Get all the online regions on a region server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#getOnlineRegions-org.apache.hadoop.hbase.TableName-">getOnlineRegions(TableName)</a></span> - Method 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>
@@ -46430,6 +46492,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/QuotaTableUtil.html#getTableFromRowKey-byte:A-">getTableFromRowKey(byte[])</a></span> - Static method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaTableUtil.html" title="class in org.apache.hadoop.hbase.quotas">QuotaTableUtil</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getTableHRegionLocations-org.apache.hadoop.hbase.TableName-">getTableHRegionLocations(TableName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>
+<div class="block">List all region locations for the specific table.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html#getTableInfo--">getTableInfo()</a></span> - Method in interface org.apache.hadoop.hbase.util.hbck.<a href="org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandler.html" title="interface in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html#getTableInfo--">getTableInfo()</a></span> - Method in class org.apache.hadoop.hbase.util.hbck.<a href="org/apache/hadoop/hbase/util/hbck/TableIntegrityErrorHandlerImpl.html" title="class in org.apache.hadoop.hbase.util.hbck">TableIntegrityErrorHandlerImpl</a></dt>
@@ -64020,6 +64086,18 @@
 <dd>
 <div class="block">Major compact a column family within a table.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact(TableName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Major compact a table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-">majorCompact(TableName, byte[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Major compact a column family within a table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact(TableName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-">majorCompact(TableName, byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact(TableName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-">majorCompact(TableName, byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
@@ -64080,10 +64158,28 @@
 <dd>
 <div class="block">Major compact a column family within region.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompactRegion-byte:A-">majorCompactRegion(byte[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Major compact a table or an individual region.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompactRegion-byte:A-byte:A-">majorCompactRegion(byte[], byte[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Major compact a column family within region.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompactRegion-byte:A-">majorCompactRegion(byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompactRegion-byte:A-byte:A-">majorCompactRegion(byte[], byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#majorCompactRegion-byte:A-">majorCompactRegion(byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.html#majorCompactRegion-byte:A-byte:A-">majorCompactRegion(byte[], byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompactRegionServer-org.apache.hadoop.hbase.ServerName-">majorCompactRegionServer(ServerName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncAdmin.html" title="interface in org.apache.hadoop.hbase.client">AsyncAdmin</a></dt>
+<dd>
+<div class="block">Compact all regions on the region server.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompactRegionServer-org.apache.hadoop.hbase.ServerName-">majorCompactRegionServer(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html" title="class in org.apache.hadoop.hbase.client">AsyncHBaseAdmin</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#majorInProgress">majorInProgress</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.BoundaryMultiWriter.html#majorRangeFromIndex">majorRangeFromIndex</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.BoundaryMultiWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StripeMultiFileWriter.BoundaryMultiWriter</a></dt>
@@ -103810,6 +103906,8 @@ service.</div>
 <div class="block">This lock ties all operations on <a href="org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#flushingSequenceIds"><code>SequenceIdAccounting.flushingSequenceIds</code></a> and
  <a href="org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>SequenceIdAccounting.lowestUnflushedSequenceIds</code></a> Maps.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html#time">time</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CompactSplitThread.CompactionRunner.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplitThread.CompactionRunner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ScannerContext.LimitFields.html#time">time</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ScannerContext.LimitFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitFields</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/MetricsThriftServerSource.html#TIME_IN_QUEUE_KEY">TIME_IN_QUEUE_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/MetricsThriftServerSource.html" title="interface in org.apache.hadoop.hbase.thrift">MetricsThriftServerSource</a></dt>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html b/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html
index d670f9f..9e1071c 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/HRegionInfo.html
@@ -1020,15 +1020,25 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
 <div class="block">Get all the online regions on a region server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Get all the online regions on a region server.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getRegion-byte:A-">getRegion</a></span>(byte[]&nbsp;regionName)</code>&nbsp;</td>
@@ -1087,85 +1097,94 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-boolean-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
+       <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
+       boolean&nbsp;major,
+       byte[]&nbsp;family)</code>
+<div class="block">Compact the region at specific region server.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-boolean-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
        <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
        boolean&nbsp;major,
        byte[]&nbsp;family)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static int</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionReplicaUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil.html#compareRegionInfosWithoutReplicaId-org.apache.hadoop.hbase.HRegionInfo-org.apache.hadoop.hbase.HRegionInfo-">compareRegionInfosWithoutReplicaId</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoA,
                                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoB)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private &lt;S,R&gt;&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;R&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">RawAsyncTableImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTableImpl.html#coprocessorService-java.util.function.Function-org.apache.hadoop.hbase.client.RawAsyncTable.CoprocessorCallable-org.apache.hadoop.hbase.HRegionInfo-byte:A-">coprocessorService</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;com.google.protobuf.RpcChannel,S&gt;&nbsp;stubMaker,
                   <a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.CoprocessorCallable.html" title="interface in org.apache.hadoop.hbase.client">RawAsyncTable.CoprocessorCallable</a>&lt;S,R&gt;&nbsp;callable,
                   <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                   byte[]&nbsp;row)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionReplicaUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil.html#getRegionInfoForDefaultReplica-org.apache.hadoop.hbase.HRegionInfo-">getRegionInfoForDefaultReplica</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo)</code>
 <div class="block">Returns the HRegionInfo for the default replicaId (0).</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionReplicaUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil.html#getRegionInfoForReplica-org.apache.hadoop.hbase.HRegionInfo-int-">getRegionInfoForReplica</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfo,
                        int&nbsp;replicaId)</code>
 <div class="block">Returns the HRegionInfo for the given replicaId.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionReplicaUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil.html#isDefaultReplica-org.apache.hadoop.hbase.HRegionInfo-">isDefaultReplica</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionReplicaUtil.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil.html#isReplicasForSameRegion-org.apache.hadoop.hbase.HRegionInfo-org.apache.hadoop.hbase.HRegionInfo-">isReplicasForSameRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoA,
                        <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionInfoB)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">RawAsyncTableImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTableImpl.html#locateFinished-org.apache.hadoop.hbase.HRegionInfo-byte:A-boolean-">locateFinished</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
               byte[]&nbsp;endKey,
               boolean&nbsp;endKeyInclusive)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionUtils.html#noMoreResultsForReverseScan-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.HRegionInfo-">noMoreResultsForReverseScan</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                            <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static boolean</code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionUtils.html#noMoreResultsForScan-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.HRegionInfo-">noMoreResultsForScan</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                     <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;info)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RawAsyncTable.CoprocessorCallback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.CoprocessorCallback.html#onRegionComplete-org.apache.hadoop.hbase.HRegionInfo-R-">onRegionComplete</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
                 <a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.CoprocessorCallback.html" title="type parameter in RawAsyncTable.CoprocessorCallback">R</a>&nbsp;resp)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RawAsyncTable.CoprocessorCallback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.CoprocessorCallback.html#onRegionError-org.apache.hadoop.hbase.HRegionInfo-java.lang.Throwable-">onRegionError</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;region,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#split-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-byte:A-">split</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
      <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
      byte[]&nbsp;splitPoint)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#split-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-byte:A-">split</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
      <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
      byte[]&nbsp;splitPoint)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#updateCachedLocation-org.apache.hadoop.hbase.HRegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-long-">updateCachedLocation</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
                     <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;source,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/class-use/HRegionLocation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/HRegionLocation.html b/devapidocs/org/apache/hadoop/hbase/class-use/HRegionLocation.html
index a9d4353..2745466 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/HRegionLocation.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/HRegionLocation.html
@@ -538,22 +538,28 @@ service.</div>
                          <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client">RegionLocateType</a>&nbsp;locateType)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getTableHRegionLocations-org.apache.hadoop.hbase.TableName-">getTableHRegionLocations</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">List all region locations for the specific table.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions-org.apache.hadoop.hbase.TableName-">locateRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ClusterConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html#locateRegions-org.apache.hadoop.hbase.TableName-">locateRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Gets the locations of all regions in the specified table, <i>tableName</i>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#locateRegions-org.apache.hadoop.hbase.TableName-boolean-boolean-">locateRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
              boolean&nbsp;useCache,
              boolean&nbsp;offlined)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ClusterConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html#locateRegions-org.apache.hadoop.hbase.TableName-boolean-boolean-">locateRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
              boolean&nbsp;useCache,
@@ -561,7 +567,7 @@ service.</div>
 <div class="block">Gets the locations of all regions in the specified table, <i>tableName</i>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">ReversedScannerCallable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ReversedScannerCallable.html#locateRegionsInRange-byte:A-byte:A-boolean-">locateRegionsInRange</a></span>(byte[]&nbsp;startKey,
                     byte[]&nbsp;endKey,
@@ -569,7 +575,7 @@ service.</div>
 <div class="block">Get the corresponding regions for an arbitrary range of keys.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncRegionLocator.html#withTimeout-java.util.concurrent.CompletableFuture-long-java.util.function.Supplier-">withTimeout</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;&nbsp;future,
            long&nbsp;timeoutNs,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
index fad9396..7b51409 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/ServerName.html
@@ -864,12 +864,36 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-boolean-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
+       <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
+       boolean&nbsp;major,
+       byte[]&nbsp;family)</code>
+<div class="block">Compact the region at specific region server.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.HRegionInfo-boolean-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
        <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri,
        boolean&nbsp;major,
        byte[]&nbsp;family)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-">compactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-">compactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Compact all regions on the region server.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-boolean-">compactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
+                   boolean&nbsp;major)</code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#compactRegionServer-org.apache.hadoop.hbase.ServerName-boolean-">compactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
@@ -1016,15 +1040,25 @@
                          int&nbsp;numAttempt)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
 <div class="block">Get all the online regions on a region server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getOnlineRegions-org.apache.hadoop.hbase.ServerName-">getOnlineRegions</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Get all the online regions on a region server.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getRegionLoad-org.apache.hadoop.hbase.ServerName-">getRegionLoad</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
@@ -1143,6 +1177,16 @@
              int&nbsp;stopped)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompactRegionServer-org.apache.hadoop.hbase.ServerName-">majorCompactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompactRegionServer-org.apache.hadoop.hbase.ServerName-">majorCompactRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</code>
+<div class="block">Compact all regions on the region server.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client">AsyncRequestFutureImpl.Retry</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncRequestFutureImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.html#manageError-int-org.apache.hadoop.hbase.client.Row-org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.Retry-java.lang.Throwable-org.apache.hadoop.hbase.ServerName-">manageError</a></span>(int&nbsp;originalIndex,
            <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row,


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

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/e2c783b2/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
index ce8fb64..05e2924 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
@@ -2498,32 +2498,63 @@ service.</div>
                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#compact-org.apache.hadoop.hbase.TableName-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Compact a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Compact a table.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#compact-org.apache.hadoop.hbase.TableName-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Compact a table.</div>
+</td>
+</tr>
 <tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+       byte[]&nbsp;columnFamily)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        byte[]&nbsp;columnFamily)</code>
 <div class="block">Compact a column family within a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        byte[]&nbsp;columnFamily)</code>
 <div class="block">Compact a column family within a table.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+       byte[]&nbsp;columnFamily)</code>
+<div class="block">Compact a column family within a table.</div>
+</td>
+</tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-boolean-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+       byte[]&nbsp;columnFamily,
+       boolean&nbsp;major,
+       <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
+<div class="block">Compact column family of a table, Asynchronous operation even if CompletableFuture.get()</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-boolean-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        byte[]&nbsp;columnFamily,
@@ -2532,7 +2563,7 @@ service.</div>
 <div class="block">Compact a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        byte[]&nbsp;columnFamily,
@@ -2540,7 +2571,7 @@ service.</div>
 <div class="block">Compact a column family within a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        byte[]&nbsp;columnFamily,
@@ -2548,35 +2579,35 @@ service.</div>
 <div class="block">Compact a column family within a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#compact-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Compact a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#compact-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">compact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Compact a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncNonMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.html#complete-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.AsyncNonMetaRegionLocator.LocateRequest-org.apache.hadoop.hbase.HRegionLocation-java.lang.Throwable-">complete</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
         <a href="../../../../../org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.LocateRequest.html" title="class in org.apache.hadoop.hbase.client">AsyncNonMetaRegionLocator.LocateRequest</a>&nbsp;req,
         <a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&nbsp;loc,
         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;error)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/client/TableState.html" title="class in org.apache.hadoop.hbase.client">TableState</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TableState.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TableState.html#convert-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableState-">convert</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
        org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableState&nbsp;tableState)</code>
 <div class="block">Covert from PB version of TableState</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/client/MultiServerCallable.html" title="class in org.apache.hadoop.hbase.client">MultiServerCallable</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncRequestFutureImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.html#createCallable-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.MultiAction-">createCallable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;server,
               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -2584,14 +2615,14 @@ service.</div>
 <div class="block">Create a callable.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HTableWrapper.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HTableWrapper.html#createWrapper-java.util.List-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.coprocessor.CoprocessorHost.Environment-java.util.concurrent.ExecutorService-">createWrapper</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&gt;&nbsp;openTables,
              <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
              <a href="../../../../../org/apache/hadoop/hbase/coprocessor/CoprocessorHost.Environment.html" title="class in org.apache.hadoop.hbase.coprocessor">CoprocessorHost.Environment</a>&nbsp;env,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#deleteColumn-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
             byte[]&nbsp;columnFamily)</code>
@@ -2603,7 +2634,7 @@ service.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#deleteColumn-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
             byte[]&nbsp;columnFamily)</code>
@@ -2613,113 +2644,113 @@ service.</div>
 </div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteColumnFamily-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumnFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   byte[]&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#deleteColumnFamily-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumnFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   byte[]&nbsp;columnFamily)</code>
 <div class="block">Delete a column family from a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#deleteColumnFamily-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumnFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   byte[]&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteColumnFamily-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumnFamily</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   byte[]&nbsp;columnFamily)</code>
 <div class="block">Delete a column family from a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#deleteColumnFamilyAsync-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumnFamilyAsync</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                        byte[]&nbsp;columnFamily)</code>
 <div class="block">Delete a column family from a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#deleteColumnFamilyAsync-org.apache.hadoop.hbase.TableName-byte:A-">deleteColumnFamilyAsync</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                        byte[]&nbsp;columnFamily)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#deleteTable-org.apache.hadoop.hbase.TableName-">deleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#deleteTable-org.apache.hadoop.hbase.TableName-">deleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Deletes a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#deleteTable-org.apache.hadoop.hbase.TableName-">deleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#deleteTable-org.apache.hadoop.hbase.TableName-">deleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Deletes a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#deleteTableAsync-org.apache.hadoop.hbase.TableName-">deleteTableAsync</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Deletes the table but does not block and wait for it be completely removed.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#deleteTableAsync-org.apache.hadoop.hbase.TableName-">deleteTableAsync</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#disableTable-org.apache.hadoop.hbase.TableName-">disableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#disableTable-org.apache.hadoop.hbase.TableName-">disableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Disable table and wait on completion.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#disableTable-org.apache.hadoop.hbase.TableName-">disableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#disableTable-org.apache.hadoop.hbase.TableName-">disableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Disable a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#disableTableAsync-org.apache.hadoop.hbase.TableName-">disableTableAsync</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Disable the table but does not block and wait for it be completely disabled.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#disableTableAsync-org.apache.hadoop.hbase.TableName-">disableTableAsync</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#disableTableReplication-org.apache.hadoop.hbase.TableName-">disableTableReplication</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Disable a table's replication switch.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#disableTableReplication-org.apache.hadoop.hbase.TableName-">disableTableReplication</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static &lt;R&gt;&nbsp;void</code></td>
 <td class="colLast"><span class="typeNameLabel">HTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HTable.html#doBatchWithCallback-java.util.List-java.lang.Object:A-org.apache.hadoop.hbase.client.coprocessor.Batch.Callback-org.apache.hadoop.hbase.client.ClusterConnection-java.util.concurrent.ExecutorService-org.apache.hadoop.hbase.TableName-">doBatchWithCallback</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&gt;&nbsp;actions,
                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;results,
@@ -2728,46 +2759,50 @@ service.</div>
                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
                    <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#enableTable-org.apache.hadoop.hbase.TableName-">enableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#enableTable-org.apache.hadoop.hbase.TableName-">enableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Enable a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#enableTable-org.apache.hadoop.hbase.TableName-">enableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#enableTable-org.apache.hadoop.hbase.TableName-">enableTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Enable a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#enableTableAsync-org.apache.hadoop.hbase.TableName-">enableTableAsync</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Enable the table but does not block and wait for it be completely enabled.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#enableTableAsync-org.apache.hadoop.hbase.TableName-">enableTableAsync</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#enableTableReplication-org.apache.hadoop.hbase.TableName-">enableTableReplication</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Enable a table's replication switch.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#enableTableReplication-org.apache.hadoop.hbase.TableName-">enableTableReplication</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#flush-org.apache.hadoop.hbase.TableName-">flush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#flush-org.apache.hadoop.hbase.TableName-">flush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
@@ -2779,77 +2814,83 @@ service.</div>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#flush-org.apache.hadoop.hbase.TableName-">flush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#flush-org.apache.hadoop.hbase.TableName-">flush</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Flush a table.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getAlterStatus-org.apache.hadoop.hbase.TableName-">getAlterStatus</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getAlterStatus-org.apache.hadoop.hbase.TableName-">getAlterStatus</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Get the status of alter command - indicates how many regions have received the updated schema
  Asynchronous operation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getAlterStatus-org.apache.hadoop.hbase.TableName-">getAlterStatus</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getAlterStatus-org.apache.hadoop.hbase.TableName-">getAlterStatus</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Get the status of alter command - indicates how many regions have received the updated schema
  Asynchronous operation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client">BufferedMutator</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getBufferedMutator-org.apache.hadoop.hbase.TableName-">getBufferedMutator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client">BufferedMutator</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#getBufferedMutator-org.apache.hadoop.hbase.TableName-">getBufferedMutator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">
  Retrieve a <a href="../../../../../org/apache/hadoop/hbase/client/BufferedMutator.html" title="interface in org.apache.hadoop.hbase.client"><code>BufferedMutator</code></a> for performing client-side buffering of writes.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetaCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/MetaCache.html#getCachedLocation-org.apache.hadoop.hbase.TableName-byte:A-">getCachedLocation</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                  byte[]&nbsp;row)</code>
 <div class="block">Search the cache for a location that fits our table and row key.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getCachedLocation-org.apache.hadoop.hbase.TableName-byte:A-">getCachedLocation</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                  byte[]&nbsp;row)</code>
 <div class="block">Search the cache for a location that fits our table and row key.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getCompactionState-org.apache.hadoop.hbase.TableName-">getCompactionState</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Get the current compaction state of a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getCompactionState-org.apache.hadoop.hbase.TableName-">getCompactionState</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getCompactionState-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">getCompactionState</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Get the current compaction state of a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client">CompactionState</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getCompactionState-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.CompactType-">getCompactionState</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client">CompactType</a>&nbsp;compactType)</code>
 <div class="block">Get the current compaction state of a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getLastMajorCompactionTimestamp-org.apache.hadoop.hbase.TableName-">getLastMajorCompactionTimestamp</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Get the timestamp of the last major compaction for the passed table
@@ -2858,64 +2899,64 @@ service.</div>
  or 0 if no such HFile could be found.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getLastMajorCompactionTimestamp-org.apache.hadoop.hbase.TableName-">getLastMajorCompactionTimestamp</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html?is-external=true" title="class or interface in java.util.function">Consumer</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncProcess.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcess.html#getLogger-org.apache.hadoop.hbase.TableName-long-">getLogger</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
          long&nbsp;max)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getMobRegionInfo-org.apache.hadoop.hbase.TableName-">getMobRegionInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><span class="typeNameLabel">MetaCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/MetaCache.html#getNumberOfCachedRegionLocations-org.apache.hadoop.hbase.TableName-">getNumberOfCachedRegionLocations</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Return the number of cached region for a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getNumberOfCachedRegionLocations-org.apache.hadoop.hbase.TableName-">getNumberOfCachedRegionLocations</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default <a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.html" title="interface in org.apache.hadoop.hbase.client">RawAsyncTable</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getRawTable-org.apache.hadoop.hbase.TableName-">getRawTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Retrieve an <a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.html" title="interface in org.apache.hadoop.hbase.client"><code>RawAsyncTable</code></a> implementation for accessing a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.html" title="interface in org.apache.hadoop.hbase.client">RawAsyncTable</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getRawTableBuilder-org.apache.hadoop.hbase.TableName-">getRawTableBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Returns an <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncTableBuilder</code></a> for creating <a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.html" title="interface in org.apache.hadoop.hbase.client"><code>RawAsyncTable</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RawAsyncTable.html" title="interface in org.apache.hadoop.hbase.client">RawAsyncTable</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncConnectionImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#getRawTableBuilder-org.apache.hadoop.hbase.TableName-">getRawTableBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getRegionLoad-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.TableName-">getRegionLoad</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
              <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Get <a href="../../../../../org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase"><code>RegionLoad</code></a> of all regions hosted on a regionserver for a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/RegionLoad.html" title="class in org.apache.hadoop.hbase">RegionLoad</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getRegionLoad-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.TableName-">getRegionLoad</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn,
              <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocation-org.apache.hadoop.hbase.TableName-byte:A-boolean-">getRegionLocation</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                  byte[]&nbsp;row,
                  boolean&nbsp;reload)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ClusterConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html#getRegionLocation-org.apache.hadoop.hbase.TableName-byte:A-boolean-">getRegionLocation</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                  byte[]&nbsp;row,
@@ -2923,26 +2964,26 @@ service.</div>
 <div class="block">Find region location hosting passed row</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncNonMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.html#getRegionLocation-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.RegionLocateType-">getRegionLocation</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                  byte[]&nbsp;row,
                  <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client">RegionLocateType</a>&nbsp;locateType)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncRegionLocator.html#getRegionLocation-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.RegionLocateType-long-">getRegionLocation</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                  byte[]&nbsp;row,
                  <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client">RegionLocateType</a>&nbsp;type,
                  long&nbsp;timeoutNs)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncNonMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.html#getRegionLocationInternal-org.apache.hadoop.hbase.TableName-byte:A-org.apache.hadoop.hbase.client.RegionLocateType-">getRegionLocationInternal</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          byte[]&nbsp;row,
                          <a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client">RegionLocateType</a>&nbsp;locateType)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RpcRetryingCallerWithReadReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.html#getRegionLocations-boolean-int-org.apache.hadoop.hbase.client.ClusterConnection-org.apache.hadoop.hbase.TableName-byte:A-">getRegionLocations</a></span>(boolean&nbsp;useCache,
                   int&nbsp;replicaId,
@@ -2950,7 +2991,7 @@ service.</div>
                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   byte[]&nbsp;row)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a></code></td>
 <td class="colLast"><span class="typeNameLabel">RegionAdminServiceCallable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RegionAdminServiceCallable.html#getRegionLocations-org.apache.hadoop.hbase.client.ClusterConnection-org.apache.hadoop.hbase.TableName-byte:A-boolean-int-">getRegionLocations</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;connection,
                   <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
@@ -2958,99 +2999,99 @@ service.</div>
                   boolean&nbsp;useCache,
                   int&nbsp;replicaId)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getRegionLocator-org.apache.hadoop.hbase.TableName-">getRegionLocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableRegionLocator</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getRegionLocator-org.apache.hadoop.hbase.TableName-">getRegionLocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Retrieve a AsyncRegionLocator implementation to inspect region information on a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableRegionLocator.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableRegionLocator</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncConnectionImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#getRegionLocator-org.apache.hadoop.hbase.TableName-">getRegionLocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/RegionLocator.html" title="interface in org.apache.hadoop.hbase.client">RegionLocator</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#getRegionLocator-org.apache.hadoop.hbase.TableName-">getRegionLocator</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Retrieve a RegionLocator implementation to inspect region information on a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTable-org.apache.hadoop.hbase.TableName-">getTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#getTable-org.apache.hadoop.hbase.TableName-">getTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Retrieve a Table implementation for accessing a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>default <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getTable-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-">getTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>
 <div class="block">Retrieve an AsyncTable implementation for accessing a table.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>default <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#getTable-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-">getTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>
 <div class="block">Retrieve a Table implementation for accessing a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/TableBuilder.html" title="interface in org.apache.hadoop.hbase.client">TableBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">ConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ConnectionImplementation.html#getTableBuilder-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-">getTableBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnection.html#getTableBuilder-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-">getTableBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>
 <div class="block">Returns an <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncTableBuilder</code></a> for creating <a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncTable</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/AsyncTableBuilder.html" title="interface in org.apache.hadoop.hbase.client">AsyncTableBuilder</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncConnectionImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#getTableBuilder-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-">getTableBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/client/TableBuilder.html" title="interface in org.apache.hadoop.hbase.client">TableBuilder</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Connection.html#getTableBuilder-org.apache.hadoop.hbase.TableName-java.util.concurrent.ExecutorService-">getTableBuilder</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</code>
 <div class="block">Returns an <a href="../../../../../org/apache/hadoop/hbase/client/TableBuilder.html" title="interface in org.apache.hadoop.hbase.client"><code>TableBuilder</code></a> for creating <a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client"><code>Table</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.TableCache.html" title="class in org.apache.hadoop.hbase.client">AsyncNonMetaRegionLocator.TableCache</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncNonMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.html#getTableCache-org.apache.hadoop.hbase.TableName-">getTableCache</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">getTableDescriptor</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">getTableDescriptor</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Method for getting the tableDescriptor</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">getTableDescriptor</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-">getTableDescriptor</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Method for getting the tableDescriptor</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getTableDescriptor-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.client.RpcRetryingCallerFactory-org.apache.hadoop.hbase.ipc.RpcControllerFactory-int-int-">getTableDescriptor</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                   <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;connection,
@@ -3059,12 +3100,18 @@ service.</div>
                   int&nbsp;operationTimeout,
                   int&nbsp;rpcTimeout)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a></code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#getTableDescriptorByTableName-org.apache.hadoop.hbase.TableName-">getTableDescriptorByTableName</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Get tableDescriptor</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/HRegionLocation.html" title="class in org.apache.hadoop.hbase">HRegionLocation</a>&gt;&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#getTableHRegionLocations-org.apache.hadoop.hbase.TableName-">getTableHRegionLocations</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">List all region locations for the specific table.</div>
+</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentNavigableMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentNavigableMap</a>&lt;byte[],<a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MetaCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/MetaCache.html#getTableLocations-org.apache.hadoop.hbase.TableName-">getTableLocations</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
@@ -3328,29 +3375,51 @@ service.</div>
                 byte[]&nbsp;row)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
 <div class="block">Major compact a table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">HBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</code>
+<div class="block">Major compact a table.</div>
+</td>
+</tr>
 <tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html?is-external=true" title="class or interface in java.util.concurrent">CompletableFuture</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AsyncHBaseAdmin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AsyncHBaseAdmin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+            byte[]&nbsp;columnFamily)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">Admin.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/Admin.html#majorCompact-org.apache.hadoop.hbase.TableName-byte:A-">majorCompact</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
             byte[]&nbsp;columnFamily)</co

<TRUNCATED>