You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2018/04/21 14:47:34 UTC

[01/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 84a296a43 -> 8bc57a1a2


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
index 2d059c0..0e3c33c 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
@@ -29,214 +29,227 @@
 <span class="sourceLineNo">021</span>import static org.junit.Assert.assertNull;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.junit.Assert.fail;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.ArrayList;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.util.List;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.conf.Configuration;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HConstants;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManagerTestHelper;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.util.IncrementingEnvironmentEdge;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.thrift.protocol.TProtocol;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.thrift.transport.THttpClient;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.thrift.transport.TTransportException;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.junit.AfterClass;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.junit.BeforeClass;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.ClassRule;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.Rule;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.Test;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.experimental.categories.Category;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.rules.ExpectedException;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.slf4j.Logger;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.slf4j.LoggerFactory;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<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> * Start the HBase Thrift HTTP server on a random port through the command-line<a name="line.53"></a>
-<span class="sourceLineNo">054</span> * interface and talk to it from client side.<a name="line.54"></a>
-<span class="sourceLineNo">055</span> */<a name="line.55"></a>
-<span class="sourceLineNo">056</span>@Category({ClientTests.class, LargeTests.class})<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>public class TestThriftHttpServer {<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  @ClassRule<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.61"></a>
-<span class="sourceLineNo">062</span>      HBaseClassTestRule.forClass(TestThriftHttpServer.class);<a name="line.62"></a>
-<span class="sourceLineNo">063</span><a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private static final Logger LOG =<a name="line.64"></a>
-<span class="sourceLineNo">065</span>      LoggerFactory.getLogger(TestThriftHttpServer.class);<a name="line.65"></a>
+<span class="sourceLineNo">024</span>import java.net.HttpURLConnection;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.net.URL;<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>import org.apache.hadoop.conf.Configuration;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.HConstants;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManagerTestHelper;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.util.IncrementingEnvironmentEdge;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.thrift.protocol.TProtocol;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.thrift.transport.THttpClient;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.thrift.transport.TTransportException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.junit.AfterClass;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.Assert;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.junit.BeforeClass;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.ClassRule;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.junit.Rule;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.junit.Test;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.junit.experimental.categories.Category;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.junit.rules.ExpectedException;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.slf4j.Logger;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.slf4j.LoggerFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>/**<a name="line.55"></a>
+<span class="sourceLineNo">056</span> * Start the HBase Thrift HTTP server on a random port through the command-line<a name="line.56"></a>
+<span class="sourceLineNo">057</span> * interface and talk to it from client side.<a name="line.57"></a>
+<span class="sourceLineNo">058</span> */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>@Category({ClientTests.class, LargeTests.class})<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>public class TestThriftHttpServer {<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  @ClassRule<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      HBaseClassTestRule.forClass(TestThriftHttpServer.class);<a name="line.65"></a>
 <span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private static final HBaseTestingUtility TEST_UTIL =<a name="line.67"></a>
-<span class="sourceLineNo">068</span>      new HBaseTestingUtility();<a name="line.68"></a>
+<span class="sourceLineNo">067</span>  private static final Logger LOG =<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      LoggerFactory.getLogger(TestThriftHttpServer.class);<a name="line.68"></a>
 <span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private Thread httpServerThread;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private volatile Exception httpServerException;<a name="line.71"></a>
+<span class="sourceLineNo">070</span>  private static final HBaseTestingUtility TEST_UTIL =<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      new HBaseTestingUtility();<a name="line.71"></a>
 <span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private Exception clientSideException;<a name="line.73"></a>
-<span class="sourceLineNo">074</span><a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private ThriftServer thriftServer;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private int port;<a name="line.76"></a>
+<span class="sourceLineNo">073</span>  private Thread httpServerThread;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private volatile Exception httpServerException;<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private Exception clientSideException;<a name="line.76"></a>
 <span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>  @BeforeClass<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  public static void setUpBeforeClass() throws Exception {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.regionserver.thrift.http", true);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.table.sanity.checks", false);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    TEST_UTIL.startMiniCluster();<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    //ensure that server time increments every time we do an operation, otherwise<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    //successive puts having the same timestamp will override each other<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    EnvironmentEdgeManagerTestHelper.injectEdge(new IncrementingEnvironmentEdge());<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>  @AfterClass<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public static void tearDownAfterClass() throws Exception {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    EnvironmentEdgeManager.reset();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  @Test<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public void testExceptionThrownWhenMisConfigured() throws Exception {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    Configuration conf = new Configuration(TEST_UTIL.getConfiguration());<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    conf.set("hbase.thrift.security.qop", "privacy");<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    conf.setBoolean("hbase.thrift.ssl.enabled", false);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>    ThriftServerRunner runner = null;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    ExpectedException thrown = ExpectedException.none();<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    try {<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      thrown.expect(IllegalArgumentException.class);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      thrown.expectMessage("Thrift HTTP Server's QoP is privacy, " +<a name="line.104"></a>
-<span class="sourceLineNo">105</span>          "but hbase.thrift.ssl.enabled is false");<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      runner = new ThriftServerRunner(conf);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      fail("Thrift HTTP Server starts up even with wrong security configurations.");<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    } catch (Exception e) {<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>    assertNull(runner);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
+<span class="sourceLineNo">078</span>  private ThriftServer thriftServer;<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private int port;<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>  @BeforeClass<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  public static void setUpBeforeClass() throws Exception {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.regionserver.thrift.http", true);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.table.sanity.checks", false);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    TEST_UTIL.startMiniCluster();<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    //ensure that server time increments every time we do an operation, otherwise<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    //successive puts having the same timestamp will override each other<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    EnvironmentEdgeManagerTestHelper.injectEdge(new IncrementingEnvironmentEdge());<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @AfterClass<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public static void tearDownAfterClass() throws Exception {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    EnvironmentEdgeManager.reset();<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 testExceptionThrownWhenMisConfigured() throws Exception {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    Configuration conf = new Configuration(TEST_UTIL.getConfiguration());<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    conf.set("hbase.thrift.security.qop", "privacy");<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    conf.setBoolean("hbase.thrift.ssl.enabled", false);<a name="line.101"></a>
+<span class="sourceLineNo">102</span><a name="line.102"></a>
+<span class="sourceLineNo">103</span>    ThriftServerRunner runner = null;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    ExpectedException thrown = ExpectedException.none();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    try {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      thrown.expect(IllegalArgumentException.class);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      thrown.expectMessage("Thrift HTTP Server's QoP is privacy, " +<a name="line.107"></a>
+<span class="sourceLineNo">108</span>          "but hbase.thrift.ssl.enabled is false");<a name="line.108"></a>
+<span class="sourceLineNo">109</span>      runner = new ThriftServerRunner(conf);<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      fail("Thrift HTTP Server starts up even with wrong security configurations.");<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    } catch (Exception e) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
 <span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  private void startHttpServerThread(final String[] args) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    LOG.info("Starting HBase Thrift server with HTTP server: " + Joiner.on(" ").join(args));<a name="line.115"></a>
+<span class="sourceLineNo">114</span>    assertNull(runner);<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>    httpServerException = null;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    httpServerThread = new Thread(new Runnable() {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      @Override<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      public void run() {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        try {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>          thriftServer.doMain(args);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        } catch (Exception e) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>          httpServerException = e;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>        }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      }<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    });<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    httpServerThread.setName(ThriftServer.class.getSimpleName() +<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        "-httpServer");<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    httpServerThread.start();<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  @Rule<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public ExpectedException exception = ExpectedException.none();<a name="line.134"></a>
+<span class="sourceLineNo">117</span>  private void startHttpServerThread(final String[] args) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    LOG.info("Starting HBase Thrift server with HTTP server: " + Joiner.on(" ").join(args));<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    httpServerException = null;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    httpServerThread = new Thread(new Runnable() {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      public void run() {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>        try {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>          thriftServer.doMain(args);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        } catch (Exception e) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>          httpServerException = e;<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>    });<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    httpServerThread.setName(ThriftServer.class.getSimpleName() +<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        "-httpServer");<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    httpServerThread.start();<a name="line.133"></a>
+<span class="sourceLineNo">134</span>  }<a name="line.134"></a>
 <span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>  @Test<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  public void testRunThriftServerWithHeaderBufferLength() throws Exception {<a name="line.137"></a>
+<span class="sourceLineNo">136</span>  @Rule<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public ExpectedException exception = ExpectedException.none();<a name="line.137"></a>
 <span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    // Test thrift server with HTTP header length less than 64k<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    try {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      runThriftServer(1024 * 63);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    } catch (TTransportException tex) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      assertFalse(tex.getMessage().equals("HTTP Response code: 431"));<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>    // Test thrift server with HTTP header length more than 64k, expect an exception<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    exception.expect(TTransportException.class);<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    exception.expectMessage("HTTP Response code: 431");<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    runThriftServer(1024 * 64);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  }<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>  @Test<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  public void testRunThriftServer() throws Exception {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    runThriftServer(0);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  private void runThriftServer(int customHeaderSize) throws Exception {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    List&lt;String&gt; args = new ArrayList&lt;&gt;(3);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    port = HBaseTestingUtility.randomFreePort();<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    args.add("-" + ThriftServer.PORT_OPTION);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    args.add(String.valueOf(port));<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    args.add("start");<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>    thriftServer = new ThriftServer(TEST_UTIL.getConfiguration());<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    startHttpServerThread(args.toArray(new String[args.size()]));<a name="line.165"></a>
+<span class="sourceLineNo">139</span>  @Test<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  public void testRunThriftServerWithHeaderBufferLength() throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    // Test thrift server with HTTP header length less than 64k<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    try {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      runThriftServer(1024 * 63);<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    } catch (TTransportException tex) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>      assertFalse(tex.getMessage().equals("HTTP Response code: 431"));<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>    // Test thrift server with HTTP header length more than 64k, expect an exception<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    exception.expect(TTransportException.class);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    exception.expectMessage("HTTP Response code: 431");<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    runThriftServer(1024 * 64);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  @Test<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  public void testRunThriftServer() throws Exception {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    runThriftServer(0);<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>  private void runThriftServer(int customHeaderSize) throws Exception {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    List&lt;String&gt; args = new ArrayList&lt;&gt;(3);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    port = HBaseTestingUtility.randomFreePort();<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    args.add("-" + ThriftServer.PORT_OPTION);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    args.add(String.valueOf(port));<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    args.add("start");<a name="line.165"></a>
 <span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span>    // wait up to 10s for the server to start<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    for (int i = 0; i &lt; 100<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        &amp;&amp; (thriftServer.serverRunner == null ||  thriftServer.serverRunner.httpServer ==<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        null); i++) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      Thread.sleep(100);<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>    try {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      talkToThriftServer(customHeaderSize);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    } catch (Exception ex) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      clientSideException = ex;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    } finally {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      stopHttpServerThread();<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (clientSideException != null) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      LOG.error("Thrift client threw an exception " + clientSideException);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      if (clientSideException instanceof  TTransportException) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        throw clientSideException;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      } else {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        throw new Exception(clientSideException);<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>  }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>  private static volatile boolean tableCreated = false;<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>  private void talkToThriftServer(int customHeaderSize) throws Exception {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    THttpClient httpClient = new THttpClient(<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        "http://"+ HConstants.LOCALHOST + ":" + port);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    httpClient.open();<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>    if (customHeaderSize &gt; 0) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      StringBuilder sb = new StringBuilder();<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      for (int i = 0; i &lt; customHeaderSize; i++) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        sb.append("a");<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      httpClient.setCustomHeader("User-Agent", sb.toString());<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>      TProtocol prot;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      prot = new TBinaryProtocol(httpClient);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>      Hbase.Client client = new Hbase.Client(prot);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      if (!tableCreated){<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        TestThriftServer.createTestTables(client);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        tableCreated = true;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      }<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      TestThriftServer.checkTableList(client);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    } finally {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      httpClient.close();<a name="line.217"></a>
+<span class="sourceLineNo">167</span>    thriftServer = new ThriftServer(TEST_UTIL.getConfiguration());<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    startHttpServerThread(args.toArray(new String[args.size()]));<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>    // wait up to 10s for the server to start<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    for (int i = 0; i &lt; 100<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        &amp;&amp; (thriftServer.serverRunner == null ||  thriftServer.serverRunner.httpServer ==<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        null); i++) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      Thread.sleep(100);<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>    String url = "http://"+ HConstants.LOCALHOST + ":" + port;<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    try {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      checkHttpMethods(url);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      talkToThriftServer(url, customHeaderSize);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    } catch (Exception ex) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      clientSideException = ex;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    } finally {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      stopHttpServerThread();<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span>    if (clientSideException != null) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      LOG.error("Thrift client threw an exception " + clientSideException);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      if (clientSideException instanceof  TTransportException) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        throw clientSideException;<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      } else {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        throw new Exception(clientSideException);<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>  }<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>  private void checkHttpMethods(String url) throws Exception {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // HTTP TRACE method should be disabled for security<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    conn.setRequestMethod("TRACE");<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    conn.connect();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    Assert.assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<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>  private static volatile boolean tableCreated = false;<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private void talkToThriftServer(String url, int customHeaderSize) throws Exception {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    THttpClient httpClient = new THttpClient(url);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    httpClient.open();<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    if (customHeaderSize &gt; 0) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      StringBuilder sb = new StringBuilder();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      for (int i = 0; i &lt; customHeaderSize; i++) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        sb.append("a");<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      httpClient.setCustomHeader("User-Agent", sb.toString());<a name="line.217"></a>
 <span class="sourceLineNo">218</span>    }<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private void stopHttpServerThread() throws Exception {<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    LOG.debug("Stopping " + " Thrift HTTP server");<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    thriftServer.stop();<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    httpServerThread.join();<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    if (httpServerException != null) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      LOG.error("Command-line invocation of HBase Thrift server threw an " +<a name="line.226"></a>
-<span class="sourceLineNo">227</span>          "exception", httpServerException);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      throw new Exception(httpServerException);<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    }<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>}<a name="line.231"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>    try {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      TProtocol prot;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      prot = new TBinaryProtocol(httpClient);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      Hbase.Client client = new Hbase.Client(prot);<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      if (!tableCreated){<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        TestThriftServer.createTestTables(client);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        tableCreated = true;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      }<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      TestThriftServer.checkTableList(client);<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    } finally {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      httpClient.close();<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    }<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>  private void stopHttpServerThread() throws Exception {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    LOG.debug("Stopping " + " Thrift HTTP server");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    thriftServer.stop();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    httpServerThread.join();<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    if (httpServerException != null) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      LOG.error("Command-line invocation of HBase Thrift server threw an " +<a name="line.239"></a>
+<span class="sourceLineNo">240</span>          "exception", httpServerException);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      throw new Exception(httpServerException);<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
+<span class="sourceLineNo">244</span>}<a name="line.244"></a>
 
 
 


[09/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html
index d6f672a..fd7ab7a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html
@@ -87,1949 +87,1951 @@
 <span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.filter.ParseFilter;<a name="line.79"></a>
 <span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.filter.PrefixFilter;<a name="line.80"></a>
 <span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.filter.WhileMatchFilter;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.thrift.TException;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.thrift.TProcessor;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TProtocol;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.thrift.server.THsHaServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.thrift.server.TServer;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServlet;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TServerSocket;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerTransport;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.Server;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.slf4j.Logger;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.slf4j.LoggerFactory;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>/**<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.149"></a>
-<span class="sourceLineNo">150</span> */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>@InterfaceAudience.Private<a name="line.151"></a>
-<span class="sourceLineNo">152</span>public class ThriftServerRunner implements Runnable {<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      "hbase.regionserver.thrift.server.type";<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * Amount of time in milliseconds before a server thread will timeout<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * applies only to TBoundedThreadPoolServer<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.http.HttpServerUtil;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.thrift.TException;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.thrift.TProcessor;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocol;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.thrift.server.THsHaServer;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServer;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.thrift.server.TServlet;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerSocket;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TServerTransport;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.Server;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.slf4j.Logger;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.slf4j.LoggerFactory;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>/**<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.150"></a>
+<span class="sourceLineNo">151</span> */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>@InterfaceAudience.Private<a name="line.152"></a>
+<span class="sourceLineNo">153</span>public class ThriftServerRunner implements Runnable {<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      "hbase.regionserver.thrift.server.type";<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<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>   * Amount of time in milliseconds before a server thread will timeout<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * applies only to TBoundedThreadPoolServer<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.189"></a>
 <span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /**<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * auth-int: authentication and integrity checking<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   * auth: authentication only<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   *<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   * This is used to authenticate the callers and support impersonation.<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public static final int HREGION_VERSION = 1;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  private final int listenPort;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private Configuration conf;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  volatile TServer tserver;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  volatile Server httpServer;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  private final Hbase.Iface handler;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  private final ThriftMetrics metrics;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  private final HBaseHandler hbaseHandler;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private final UserGroupInformation realUser;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  private SaslUtil.QualityOfProtection qop;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private String host;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  private final boolean securityEnabled;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private final boolean doAsEnabled;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /** An enum of server implementation selections */<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  enum ImplType {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    THREADED_SELECTOR(<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    final String option;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    final boolean isAlwaysFramed;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    final boolean canSpecifyBindIP;<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      this.option = option;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      this.serverClass = serverClass;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.249"></a>
-<span class="sourceLineNo">250</span>     *         {@link #values()}<a name="line.250"></a>
-<span class="sourceLineNo">251</span>     */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public String toString() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return "-" + option;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    String getDescription() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          serverClass.getSimpleName());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      if (isAlwaysFramed) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        sb.append(" This implies the framed transport.");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (this == DEFAULT) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        sb.append("This is the default.");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      OptionGroup group = new OptionGroup();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      for (ImplType t : values()) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      for (ImplType t : values()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (confType.equals(t.option)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          return t;<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>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      ImplType chosenType = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      int numChosen = 0;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      for (ImplType t : values()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        if (cmd.hasOption(t.option)) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          chosenType = t;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          ++numChosen;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      if (numChosen &lt; 1) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        LOG.info("Using default thrift server type");<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        chosenType = DEFAULT;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      } else if (numChosen &gt; 1) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        throw new AssertionError("Exactly one option out of " +<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          Arrays.toString(values()) + " has to be specified");<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      return serverClass.getSimpleName();<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>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      for (ImplType t : values()) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        if (!t.canSpecifyBindIP) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          l.add(t.simpleClassName());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      return l;<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>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    // login the server principal (if using secure Hadoop)<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (securityEnabled) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        "hbase.thrift.kerberos.principal", host);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      hbaseHandler, metrics, conf);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (strQop != null) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    doAsEnabled = conf.getBoolean(THRIFT_SUPPORT_PROXYUSER, false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    if (doAsEnabled) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      if (!conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        LOG.warn("Fail to enable the doAs feature. hbase.regionserver.thrift.http is not " +<a name="line.351"></a>
-<span class="sourceLineNo">352</span>                "configured ");<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>    if (qop != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      if (qop != QualityOfProtection.AUTHENTICATION &amp;&amp;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          qop != QualityOfProtection.INTEGRITY &amp;&amp;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>          qop != QualityOfProtection.PRIVACY) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        throw new IOException(String.format("Invalide %s: It must be one of %s, %s, or %s.",<a name="line.359"></a>
-<span class="sourceLineNo">360</span>                              THRIFT_QOP_KEY,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>                              QualityOfProtection.AUTHENTICATION.name(),<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                              QualityOfProtection.INTEGRITY.name(),<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                              QualityOfProtection.PRIVACY.name()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      checkHttpSecurity(qop, conf);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      if (!securityEnabled) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        throw new IOException("Thrift server must"<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          + " run in secure mode to support authentication");<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><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private void checkHttpSecurity(QualityOfProtection qop, Configuration conf) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (qop == QualityOfProtection.PRIVACY &amp;&amp;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        conf.getBoolean(USE_HTTP_CONF_KEY, false) &amp;&amp;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        !conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      throw new IllegalArgumentException("Thrift HTTP Server's QoP is privacy, but " +<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          THRIFT_SSL_ENABLED + " is false");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Runs the Thrift server<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void run() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    realUser.doAs(new PrivilegedAction&lt;Object&gt;() {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      @Override<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      public Object run() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          pauseMonitor.start();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>          if (conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>            setupHTTPServer();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>            httpServer.start();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>            httpServer.join();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          } else {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>            setupServer();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            tserver.serve();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>          }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        } catch (Exception e) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.error(HBaseMarkers.FATAL, "Cannot run ThriftServer", e);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          // Crash the process if the ThriftServer is not running<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          System.exit(-1);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        return null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    });<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void shutdown() {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    if (pauseMonitor != null) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      pauseMonitor.stop();<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    if (tserver != null) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      tserver.stop();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      tserver = null;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    if (httpServer != null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      try {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        httpServer.stop();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        httpServer = null;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      } catch (Exception e) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        LOG.error("Problem encountered in shutting down HTTP server " + e.getCause());<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      httpServer = null;<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><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private void setupHTTPServer() throws IOException {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    TProcessor processor = new Hbase.Processor&lt;&gt;(handler);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    TServlet thriftHttpServlet = new ThriftHttpServlet(processor, protocolFactory, realUser,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        conf, hbaseHandler, securityEnabled, doAsEnabled);<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    // Set the default max thread number to 100 to limit<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    // the number of concurrent requests so that Thrfit HTTP server doesn't OOM easily.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    // Jetty set the default max thread number to 250, if we don't set it.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    //<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Our default min thread number 2 is the same as that used by Jetty.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    int minThreads = conf.getInt(HTTP_MIN_THREADS, 2);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    int maxThreads = conf.getInt(HTTP_MAX_THREADS, 100);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    QueuedThreadPool threadPool = new QueuedThreadPool(maxThreads);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    threadPool.setMinThreads(minThreads);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    httpServer = new Server(threadPool);<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>    // Context handler<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    ServletContextHandler ctxHandler = new ServletContextHandler(httpServer, "/",<a name="line.448"></a>
-<span class="sourceLineNo">449</span>            ServletContextHandler.SESSIONS);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    ctxHandler.addServlet(new ServletHolder(thriftHttpServlet), "/*");<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // set up Jetty and run the embedded server<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    HttpConfiguration httpConfig = new HttpConfiguration();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    httpConfig.setSecureScheme("https");<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    httpConfig.setSecurePort(listenPort);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    httpConfig.setHeaderCacheSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    httpConfig.setRequestHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    httpConfig.setResponseHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    httpConfig.setSendServerVersion(false);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    httpConfig.setSendDateHeader(false);<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ServerConnector serverConnector;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    if(conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      httpsConfig.addCustomizer(new SecureRequestCustomizer());<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>      SslContextFactory sslCtxFactory = new SslContextFactory();<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      String keystore = conf.get(THRIFT_SSL_KEYSTORE_STORE);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String password = HBaseConfiguration.getPassword(conf,<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          THRIFT_SSL_KEYSTORE_PASSWORD, null);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      String keyPassword = HBaseConfiguration.getPassword(conf,<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          THRIFT_SSL_KEYSTORE_KEYPASSWORD, password);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      sslCtxFactory.setKeyStorePath(keystore);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      sslCtxFactory.setKeyStorePassword(password);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      sslCtxFactory.setKeyManagerPassword(keyPassword);<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      String[] excludeCiphers = conf.getStrings(<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          THRIFT_SSL_EXCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      if (excludeCiphers.length != 0) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        sslCtxFactory.setExcludeCipherSuites(excludeCiphers);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      String[] includeCiphers = conf.getStrings(<a name="line.482"></a>
-<span class="sourceLineNo">483</span>          THRIFT_SSL_INCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      if (includeCiphers.length != 0) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        sslCtxFactory.setIncludeCipherSuites(includeCiphers);<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>      // Disable SSLv3 by default due to "Poodle" Vulnerability - CVE-2014-3566<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      String[] excludeProtocols = conf.getStrings(<a name="line.489"></a>
-<span class="sourceLineNo">490</span>          THRIFT_SSL_EXCLUDE_PROTOCOLS, "SSLv3");<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      if (excludeProtocols.length != 0) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        sslCtxFactory.setExcludeProtocols(excludeProtocols);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      String[] includeProtocols = conf.getStrings(<a name="line.494"></a>
-<span class="sourceLineNo">495</span>          THRIFT_SSL_INCLUDE_PROTOCOLS, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      if (includeProtocols.length != 0) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        sslCtxFactory.setIncludeProtocols(includeProtocols);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      serverConnector = new ServerConnector(httpServer,<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          new SslConnectionFactory(sslCtxFactory, HttpVersion.HTTP_1_1.toString()),<a name="line.501"></a>
-<span class="sourceLineNo">502</span>          new HttpConnectionFactory(httpsConfig));<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    } else {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      serverConnector = new ServerConnector(httpServer, new HttpConnectionFactory(httpConfig));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    serverConnector.setPort(listenPort);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    String host = getBindAddress(conf).getHostAddress();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    serverConnector.setHost(host);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    httpServer.addConnector(serverConnector);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    httpServer.setStopAtShutdown(true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>    if (doAsEnabled) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      ProxyUsers.refreshSuperUserGroupsConfiguration(conf);<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>    LOG.info("Starting Thrift HTTP Server on " + Integer.toString(listenPort));<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  /**<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * Setting up the thrift TServer<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
-<span class="sourceLineNo">522</span>  private void setupServer() throws Exception {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    // Construct correct ProtocolFactory<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    TProtocolFactory protocolFactory = getProtocolFactory();<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>    final TProcessor p = new Hbase.Processor&lt;&gt;(handler);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    ImplType implType = ImplType.getServerImpl(conf);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    TProcessor processor = p;<a name="line.528"></a>
-<span class="sourceLineNo">529</span><a name="line.529"></a>
-<span class="sourceLineNo">530</span>    // Construct correct TransportFactory<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    TTransportFactory transportFactory;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    if (conf.getBoolean(FRAMED_CONF_KEY, false) || implType.isAlwaysFramed) {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (qop != null) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        throw new RuntimeException("Thrift server authentication"<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          + " doesn't work with framed transport yet");<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      transportFactory = new TFramedTransport.Factory(<a name="line.537"></a>
-<span class="sourceLineNo">538</span>          conf.getInt(MAX_FRAME_SIZE_CONF_KEY, 2)  * 1024 * 1024);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      LOG.debug("Using framed transport");<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    } else if (qop == null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      transportFactory = new TTransportFactory();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    } else {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      // Extract the name from the principal<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      String name = SecurityUtil.getUserFromPrincipal(<a name="line.544"></a>
-<span class="sourceLineNo">545</span>        conf.get("hbase.thrift.kerberos.principal"));<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      Map&lt;String, String&gt; saslProperties = SaslUtil.initSaslProperties(qop.name());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      TSaslServerTransport.Factory saslFactory = new TSaslServerTransport.Factory();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      saslFactory.addServerDefinition("GSSAPI", name, host, saslProperties,<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        new SaslGssCallbackHandler() {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          @Override<a name="line.550"></a>
-<span class="sourceLineNo">551</span>          public void handle(Callback[] callbacks)<a name="line.551"></a>
-<span class="sourceLineNo">552</span>              throws UnsupportedCallbackException {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>            AuthorizeCallback ac = null;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>            for (Callback callback : callbacks) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>              if (callback instanceof AuthorizeCallback) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                ac = (AuthorizeCallback) callback;<a name="line.556"></a>
-<span class="sourceLineNo">557</span>              } else {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                throw new UnsupportedCallbackException(callback,<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                    "Unrecognized SASL GSSAPI Callback");<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>            if (ac != null) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>              String authid = ac.getAuthenticationID();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>              String authzid = ac.getAuthorizationID();<a name="line.564"></a>
-<span class="sourceLineNo">565</span>              if (!authid.equals(authzid)) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                ac.setAuthorized(false);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>              } else {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>                ac.setAuthorized(true);<a name="line.568"></a>
-<span class="sourceLineNo">569</span>                String userName = SecurityUtil.getUserFromPrincipal(authzid);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>                LOG.info("Effective user: " + userName);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>                ac.setAuthorizedID(userName);<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>          }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>        });<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      transportFactory = saslFactory;<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Create a processor wrapper, to get the caller<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      processor = new TProcessor() {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        public boolean process(TProtocol inProt,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>            TProtocol outProt) throws TException {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>          TSaslServerTransport saslServerTransport =<a name="line.583"></a>
-<span class="sourceLineNo">584</span>            (TSaslServerTransport)inProt.getTransport();<a name="line.584"></a>
-<span class="sourceLineNo">585</span>          SaslServer saslServer = saslServerTransport.getSaslServer();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>          String principal = saslServer.getAuthorizationID();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>          hbaseHandler.setEffectiveUser(principal);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          return p.process(inProt, outProt);<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>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>    if (conf.get(BIND_CONF_KEY) != null &amp;&amp; !implType.canSpecifyBindIP) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      LOG.error("Server types " + Joiner.on(", ").join(<a name="line.594"></a>
-<span class="sourceLineNo">595</span>          ImplType.serversThatCannotSpecifyBindIP()) + " don't support IP " +<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          "address binding at the moment. See " +<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          "https://issues.apache.org/jira/browse/HBASE-2155 for details.");<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      throw new RuntimeException(<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          "-" + BIND_CONF_KEY + " not supported with " + implType);<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>    // Thrift's implementation uses '0' as a placeholder for 'use the default.'<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    int backlog = conf.getInt(BACKLOG_CONF_KEY, 0);<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (implType == ImplType.HS_HA || implType == ImplType.NONBLOCKING ||<a name="line.605"></a>
-<span class="sourceLineNo">606</span>        implType == ImplType.THREADED_SELECTOR) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(<a name="line.608"></a>
-<span class="sourceLineNo">609</span>          new InetSocketAddress(listenAddress, listenPort));<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span>      if (implType == ImplType.NONBLOCKING) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        TNonblockingServer.Args serverArgs =<a name="line.612"></a>
-<span class="sourceLineNo">613</span>            new TNonblockingServer.Args(serverTransport);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        serverArgs.processor(processor)<a name="line.614"></a>
-<span class="sourceLineNo">615</span>                  .transportFactory(transportFactory)<a name="line.615"></a>
-<span class="sourceLineNo">616</span>                  .protocolFactory(protocolFactory);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        tserver = new TNonblockingServer(serverArgs);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      } else if (implType == ImplType.HS_HA) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        THsHaServer.Args serverArgs = new THsHaServer.Args(serverTransport);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        ExecutorService executorService = createExecutor(<a name="line.621"></a>
-<span class="sourceLineNo">622</span>            callQueue, serverArgs.getMaxWorkerThreads(), serverArgs.getMaxWorkerThreads());<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        tserver = new THsHaServer(serverArgs);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else { // THREADED_SELECTOR<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        TThreadedSelectorServer.Args serverArgs =<a name="line.627"></a>
-<span class="sourceLineNo">628</span>            new HThreadedSelectorServerArgs(serverTransport, conf);<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        ExecutorService executorService = createExecutor(<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            callQueue, serverArgs.getWorkerThreads(), serverArgs.getWorkerThreads());<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.632"></a>
-<span class="sourceLineNo">633</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        tserver = new TThreadedSelectorServer(serverArgs);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      LOG.info("starting HBase " + implType.simpleClassName() +<a name="line.636"></a>
-<span class="sourceLineNo">637</span>          " server on " + Integer.toString(listenPort));<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    } else if (implType == ImplType.THREAD_POOL) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      // Thread pool server. Get the IP address to bind to.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      int readTimeout = conf.getInt(THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY,<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      TServerTransport serverTransport = new TServerSocket(<a name="line.643"></a>
-<span class="sourceLineNo">644</span>          new TServerSocket.ServerSocketTransportArgs().<a name="line.644"></a>
-<span class="sourceLineNo">645</span>              bindAddr(new InetSocketAddress(listenAddress, listenPort)).backlog(backlog).<a name="line.645"></a>
-<span class="sourceLineNo">646</span>              clientTimeout(readTimeout));<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>      TBoundedThreadPoolServer.Args serverArgs =<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          new TBoundedThreadPoolServer.Args(serverTransport, conf);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      serverArgs.processor(processor).transportFactory(transportFactory)<a name="line.650"></a>
-<span class="sourceLineNo">651</span>              .protocolFactory(protocolFactory);<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      LOG.info("starting " + ImplType.THREAD_POOL.simpleClassName() + " on "<a name="line.652"></a>
-<span class="sourceLineNo">653</span>          + listenAddress + ":" + Integer.toString(listenPort)<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          + " with readTimeout " + readTimeout + "ms; " + serverArgs);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      this.tserver = new TBoundedThreadPoolServer(serverArgs, metrics);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } else {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      throw new AssertionError("Unsupported Thrift server implementation: " +<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          implType.simpleClassName());<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>    // A sanity check that we instantiated the right type of server.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    if (tserver.getClass() != implType.serverClass) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      throw new AssertionError("Expected to create Thrift server class " +<a name="line.663"></a>
-<span class="sourceLineNo">664</span>          implType.serverClass.getName() + " but got " +<a name="line.664"></a>
-<span class="sourceLineNo">665</span>          tserver.getClass().getName());<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * auth-int: authentication and integrity checking<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * auth: authentication only<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   *<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * This is used to authenticate the callers and support impersonation.<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public static final int HREGION_VERSION = 1;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private final int listenPort;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private Configuration conf;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  volatile TServer tserver;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  volatile Server httpServer;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final Hbase.Iface handler;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  private final ThriftMetrics metrics;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  private final HBaseHandler hbaseHandler;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  private final UserGroupInformation realUser;<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  private SaslUtil.QualityOfProtection qop;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  private String host;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private final boolean securityEnabled;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  private final boolean doAsEnabled;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  /** An enum of server implementation selections */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  enum ImplType {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    THREADED_SELECTOR(<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    final String option;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    final boolean isAlwaysFramed;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    final boolean canSpecifyBindIP;<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.option = option;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      this.serverClass = serverClass;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.250"></a>
+<span class="sourceLineNo">251</span>     *         {@link #values()}<a name="line.251"></a>
+<span class="sourceLineNo">252</span>     */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    public String toString() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      return "-" + option;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    String getDescription() {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.259"></a>
+<span class="sourceLineNo">260</span>          serverClass.getSimpleName());<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      if (isAlwaysFramed) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        sb.append(" This implies the framed transport.");<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      if (this == DEFAULT) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        sb.append("This is the default.");<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      OptionGroup group = new OptionGroup();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      for (ImplType t : values()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      for (ImplType t : values()) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        if (confType.equals(t.option)) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>          return t;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      ImplType chosenType = null;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      int numChosen = 0;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      for (ImplType t : values()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        if (cmd.hasOption(t.option)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>          chosenType = t;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          ++numChosen;<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>      if (numChosen &lt; 1) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        LOG.info("Using default thrift server type");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        chosenType = DEFAULT;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      } else if (numChosen &gt; 1) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        throw new AssertionError("Exactly one option out of " +<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          Arrays.toString(values()) + " has to be specified");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      return serverClass.getSimpleName();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      for (ImplType t : values()) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        if (!t.canSpecifyBindIP) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>          l.add(t.simpleClassName());<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>      return l;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // login the server principal (if using secure Hadoop)<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (securityEnabled) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        "hbase.thrift.kerberos.principal", host);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      hbaseHandler, metrics, conf);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if (strQop != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a n

<TRUNCATED>

[17/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html b/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html
index 5db80d5..b3fddf3 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html
@@ -180,6 +180,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_GENERAL_HANDLER_DESC">NUM_ACTIVE_GENERAL_HANDLER_DESC</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_GENERAL_HANDLER_NAME">NUM_ACTIVE_GENERAL_HANDLER_NAME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_HANDLER_DESC">NUM_ACTIVE_HANDLER_DESC</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -188,6 +196,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_PRIORITY_HANDLER_DESC">NUM_ACTIVE_PRIORITY_HANDLER_DESC</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_PRIORITY_HANDLER_NAME">NUM_ACTIVE_PRIORITY_HANDLER_NAME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_READ_HANDLER_DESC">NUM_ACTIVE_READ_HANDLER_DESC</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -196,6 +212,14 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_REPLICATION_HANDLER_DESC">NUM_ACTIVE_REPLICATION_HANDLER_DESC</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_REPLICATION_HANDLER_NAME">NUM_ACTIVE_REPLICATION_HANDLER_NAME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_SCAN_HANDLER_DESC">NUM_ACTIVE_SCAN_HANDLER_DESC</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
@@ -990,13 +1014,91 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 </dl>
 </li>
 </ul>
+<a name="NUM_ACTIVE_GENERAL_HANDLER_NAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUM_ACTIVE_GENERAL_HANDLER_NAME</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.80">NUM_ACTIVE_GENERAL_HANDLER_NAME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_GENERAL_HANDLER_NAME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="NUM_ACTIVE_GENERAL_HANDLER_DESC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUM_ACTIVE_GENERAL_HANDLER_DESC</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.81">NUM_ACTIVE_GENERAL_HANDLER_DESC</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_GENERAL_HANDLER_DESC">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="NUM_ACTIVE_PRIORITY_HANDLER_NAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUM_ACTIVE_PRIORITY_HANDLER_NAME</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.82">NUM_ACTIVE_PRIORITY_HANDLER_NAME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_PRIORITY_HANDLER_NAME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="NUM_ACTIVE_PRIORITY_HANDLER_DESC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUM_ACTIVE_PRIORITY_HANDLER_DESC</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.83">NUM_ACTIVE_PRIORITY_HANDLER_DESC</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_PRIORITY_HANDLER_DESC">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="NUM_ACTIVE_REPLICATION_HANDLER_NAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUM_ACTIVE_REPLICATION_HANDLER_NAME</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.84">NUM_ACTIVE_REPLICATION_HANDLER_NAME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_REPLICATION_HANDLER_NAME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="NUM_ACTIVE_REPLICATION_HANDLER_DESC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUM_ACTIVE_REPLICATION_HANDLER_DESC</h4>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.85">NUM_ACTIVE_REPLICATION_HANDLER_DESC</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_REPLICATION_HANDLER_DESC">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="NUM_ACTIVE_WRITE_HANDLER_NAME">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_ACTIVE_WRITE_HANDLER_NAME</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.80">NUM_ACTIVE_WRITE_HANDLER_NAME</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.86">NUM_ACTIVE_WRITE_HANDLER_NAME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_WRITE_HANDLER_NAME">Constant Field Values</a></dd>
@@ -1009,7 +1111,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_ACTIVE_WRITE_HANDLER_DESC</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.81">NUM_ACTIVE_WRITE_HANDLER_DESC</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.87">NUM_ACTIVE_WRITE_HANDLER_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_WRITE_HANDLER_DESC">Constant Field Values</a></dd>
@@ -1022,7 +1124,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_ACTIVE_READ_HANDLER_NAME</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.82">NUM_ACTIVE_READ_HANDLER_NAME</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.88">NUM_ACTIVE_READ_HANDLER_NAME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_READ_HANDLER_NAME">Constant Field Values</a></dd>
@@ -1035,7 +1137,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_ACTIVE_READ_HANDLER_DESC</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.83">NUM_ACTIVE_READ_HANDLER_DESC</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.89">NUM_ACTIVE_READ_HANDLER_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_READ_HANDLER_DESC">Constant Field Values</a></dd>
@@ -1048,7 +1150,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_ACTIVE_SCAN_HANDLER_NAME</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.84">NUM_ACTIVE_SCAN_HANDLER_NAME</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.90">NUM_ACTIVE_SCAN_HANDLER_NAME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_SCAN_HANDLER_NAME">Constant Field Values</a></dd>
@@ -1061,7 +1163,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_ACTIVE_SCAN_HANDLER_DESC</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.85">NUM_ACTIVE_SCAN_HANDLER_DESC</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.91">NUM_ACTIVE_SCAN_HANDLER_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_SCAN_HANDLER_DESC">Constant Field Values</a></dd>
@@ -1074,7 +1176,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_GENERAL_CALLS_DROPPED_NAME</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.86">NUM_GENERAL_CALLS_DROPPED_NAME</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.92">NUM_GENERAL_CALLS_DROPPED_NAME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_GENERAL_CALLS_DROPPED_NAME">Constant Field Values</a></dd>
@@ -1087,7 +1189,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_GENERAL_CALLS_DROPPED_DESC</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.87">NUM_GENERAL_CALLS_DROPPED_DESC</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.93">NUM_GENERAL_CALLS_DROPPED_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_GENERAL_CALLS_DROPPED_DESC">Constant Field Values</a></dd>
@@ -1100,7 +1202,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>NUM_LIFO_MODE_SWITCHES_NAME</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.89">NUM_LIFO_MODE_SWITCHES_NAME</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.95">NUM_LIFO_MODE_SWITCHES_NAME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_LIFO_MODE_SWITCHES_NAME">Constant Field Values</a></dd>
@@ -1113,7 +1215,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockListLast">
 <li class="blockList">
 <h4>NUM_LIFO_MODE_SWITCHES_DESC</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.90">NUM_LIFO_MODE_SWITCHES_DESC</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.96">NUM_LIFO_MODE_SWITCHES_DESC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_LIFO_MODE_SWITCHES_DESC">Constant Field Values</a></dd>
@@ -1134,7 +1236,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>authorizationSuccess</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.93">authorizationSuccess</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.99">authorizationSuccess</a>()</pre>
 </li>
 </ul>
 <a name="authorizationFailure--">
@@ -1143,7 +1245,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>authorizationFailure</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.95">authorizationFailure</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.101">authorizationFailure</a>()</pre>
 </li>
 </ul>
 <a name="authenticationSuccess--">
@@ -1152,7 +1254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>authenticationSuccess</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.97">authenticationSuccess</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.103">authenticationSuccess</a>()</pre>
 </li>
 </ul>
 <a name="authenticationFailure--">
@@ -1161,7 +1263,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>authenticationFailure</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.99">authenticationFailure</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.105">authenticationFailure</a>()</pre>
 </li>
 </ul>
 <a name="authenticationFallback--">
@@ -1170,7 +1272,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>authenticationFallback</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.101">authenticationFallback</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.107">authenticationFallback</a>()</pre>
 </li>
 </ul>
 <a name="sentBytes-long-">
@@ -1179,7 +1281,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>sentBytes</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.103">sentBytes</a>(long&nbsp;count)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.109">sentBytes</a>(long&nbsp;count)</pre>
 </li>
 </ul>
 <a name="receivedBytes-int-">
@@ -1188,7 +1290,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>receivedBytes</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.105">receivedBytes</a>(int&nbsp;count)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.111">receivedBytes</a>(int&nbsp;count)</pre>
 </li>
 </ul>
 <a name="sentResponse-long-">
@@ -1197,7 +1299,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>sentResponse</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.107">sentResponse</a>(long&nbsp;count)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.113">sentResponse</a>(long&nbsp;count)</pre>
 </li>
 </ul>
 <a name="receivedRequest-long-">
@@ -1206,7 +1308,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>receivedRequest</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.109">receivedRequest</a>(long&nbsp;count)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.115">receivedRequest</a>(long&nbsp;count)</pre>
 </li>
 </ul>
 <a name="dequeuedCall-int-">
@@ -1215,7 +1317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>dequeuedCall</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.111">dequeuedCall</a>(int&nbsp;qTime)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.117">dequeuedCall</a>(int&nbsp;qTime)</pre>
 </li>
 </ul>
 <a name="processedCall-int-">
@@ -1224,7 +1326,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockList">
 <li class="blockList">
 <h4>processedCall</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.113">processedCall</a>(int&nbsp;processingTime)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.119">processedCall</a>(int&nbsp;processingTime)</pre>
 </li>
 </ul>
 <a name="queuedAndProcessedCall-int-">
@@ -1233,7 +1335,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackin
 <ul class="blockListLast">
 <li class="blockList">
 <h4>queuedAndProcessedCall</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.115">queuedAndProcessedCall</a>(int&nbsp;totalTime)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#line.121">queuedAndProcessedCall</a>(int&nbsp;totalTime)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html
index 5e2fdf1..fea1df6 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html
@@ -217,7 +217,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 <!--   -->
 </a>
 <h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_FAILURES_DESC">AUTHENTICATION_FAILURES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_FAILURES_NAME">AUTHENTICATION_FAILURES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_FALLBACKS_DESC">AUTHENTICATION_FALLBACKS_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_FALLBACKS_NAME">AUTHENTICATION_FALLBACKS_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_SUCCESSES_DESC">AUTHENTICATION_SUCCESSES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_SUCCESSES_NAME">AUTHENTICATION_SUCCESSES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHORIZATION_FAILURES_DE
 SC">AUTHORIZATION_FAILURES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHORIZATION_FAILURES_NAME">AUTHORIZATION_FAILURES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHORIZATION_SUCCESSES_DESC">AUTHORIZATION_SUCCESSES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHORIZATION_SUCCESSES_NAME">AUTHORIZATION_SUCCESSES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#GENERAL_QUEUE_DESC">GENERAL_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#GENERAL_QUEUE_NAME">GENERAL_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_HANDLER_DESC">NUM_ACTIVE_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_HANDLER_NAME">NUM_ACTIVE_HANDLER_NAME</a>, 
 <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_READ_HANDLER_DESC">NUM_ACTIVE_READ_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_READ_HANDLER_NAME">NUM_ACTIVE_READ_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_SCAN_HANDLER_DESC">NUM_ACTIVE_SCAN_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_SCAN_HANDLER_NAME">NUM_ACTIVE_SCAN_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_WRITE_HANDLER_DESC">NUM_ACTIVE_WRITE_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_WRITE_HANDLER_NAME">NUM_ACTIVE_WRITE_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_GENERAL_CALLS_DROPPED_DESC">NUM
 _GENERAL_CALLS_DROPPED_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_GENERAL_CALLS_DROPPED_NAME">NUM_GENERAL_CALLS_DROPPED_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_LIFO_MODE_SWITCHES_DESC">NUM_LIFO_MODE_SWITCHES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_LIFO_MODE_SWITCHES_NAME">NUM_LIFO_MODE_SWITCHES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_OPEN_CONNECTIONS_DESC">NUM_OPEN_CONNECTIONS_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_OPEN_CONNECTIONS_NAME">NUM_OPEN_CONNECTIONS_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#PRIORITY_QUEUE_DESC">PRIORITY_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#PRIORITY_QUEUE_NAME">PRIORITY_QUEUE_
 NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#PROCESS_CALL_TIME_DESC">PROCESS_CALL_TIME_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#PROCESS_CALL_TIME_NAME">PROCESS_CALL_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#QUEUE_CALL_TIME_DESC">QUEUE_CALL_TIME_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#QUEUE_CALL_TIME_NAME">QUEUE_CALL_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#QUEUE_SIZE_DESC">QUEUE_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#QUEUE_SIZE_NAME">QUEUE_SIZE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#READ_QUEUE_DESC">READ_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#READ_QUEUE_NAME">
 READ_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#RECEIVED_BYTES_DESC">RECEIVED_BYTES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#RECEIVED_BYTES_NAME">RECEIVED_BYTES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#REPLICATION_QUEUE_DESC">REPLICATION_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#REPLICATION_QUEUE_NAME">REPLICATION_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#REQUEST_SIZE_DESC">REQUEST_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#REQUEST_SIZE_NAME">REQUEST_SIZE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#RESPONSE_SIZE_DESC">RESPONSE_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.h
 tml#RESPONSE_SIZE_NAME">RESPONSE_SIZE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#SCAN_QUEUE_DESC">SCAN_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#SCAN_QUEUE_NAME">SCAN_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#SENT_BYTES_DESC">SENT_BYTES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#SENT_BYTES_NAME">SENT_BYTES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#TOTAL_CALL_TIME_DESC">TOTAL_CALL_TIME_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#TOTAL_CALL_TIME_NAME">TOTAL_CALL_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#WRITE_QUEUE_DESC">WRITE_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#WRITE
 _QUEUE_NAME">WRITE_QUEUE_NAME</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_FAILURES_DESC">AUTHENTICATION_FAILURES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_FAILURES_NAME">AUTHENTICATION_FAILURES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_FALLBACKS_DESC">AUTHENTICATION_FALLBACKS_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_FALLBACKS_NAME">AUTHENTICATION_FALLBACKS_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_SUCCESSES_DESC">AUTHENTICATION_SUCCESSES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHENTICATION_SUCCESSES_NAME">AUTHENTICATION_SUCCESSES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHORIZATION_FAILURES_DE
 SC">AUTHORIZATION_FAILURES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHORIZATION_FAILURES_NAME">AUTHORIZATION_FAILURES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHORIZATION_SUCCESSES_DESC">AUTHORIZATION_SUCCESSES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#AUTHORIZATION_SUCCESSES_NAME">AUTHORIZATION_SUCCESSES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#GENERAL_QUEUE_DESC">GENERAL_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#GENERAL_QUEUE_NAME">GENERAL_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_GENERAL_HANDLER_DESC">NUM_ACTIVE_GENERAL_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_GENERAL_HANDLER_NAME">NUM_A
 CTIVE_GENERAL_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_HANDLER_DESC">NUM_ACTIVE_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_HANDLER_NAME">NUM_ACTIVE_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_PRIORITY_HANDLER_DESC">NUM_ACTIVE_PRIORITY_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_PRIORITY_HANDLER_NAME">NUM_ACTIVE_PRIORITY_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_READ_HANDLER_DESC">NUM_ACTIVE_READ_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_READ_HANDLER_NAME">NUM_ACTIVE_READ_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_
 REPLICATION_HANDLER_DESC">NUM_ACTIVE_REPLICATION_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_REPLICATION_HANDLER_NAME">NUM_ACTIVE_REPLICATION_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_SCAN_HANDLER_DESC">NUM_ACTIVE_SCAN_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_SCAN_HANDLER_NAME">NUM_ACTIVE_SCAN_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_WRITE_HANDLER_DESC">NUM_ACTIVE_WRITE_HANDLER_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_WRITE_HANDLER_NAME">NUM_ACTIVE_WRITE_HANDLER_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_GENERAL_CALLS_DROPPED_DESC">NUM_GENERAL_CALLS_DROPPED_DESC</a>, <a href="../../../../../org/apac
 he/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_GENERAL_CALLS_DROPPED_NAME">NUM_GENERAL_CALLS_DROPPED_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_LIFO_MODE_SWITCHES_DESC">NUM_LIFO_MODE_SWITCHES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_LIFO_MODE_SWITCHES_NAME">NUM_LIFO_MODE_SWITCHES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_OPEN_CONNECTIONS_DESC">NUM_OPEN_CONNECTIONS_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_OPEN_CONNECTIONS_NAME">NUM_OPEN_CONNECTIONS_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#PRIORITY_QUEUE_DESC">PRIORITY_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#PRIORITY_QUEUE_NAME">PRIORITY_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/Met
 ricsHBaseServerSource.html#PROCESS_CALL_TIME_DESC">PROCESS_CALL_TIME_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#PROCESS_CALL_TIME_NAME">PROCESS_CALL_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#QUEUE_CALL_TIME_DESC">QUEUE_CALL_TIME_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#QUEUE_CALL_TIME_NAME">QUEUE_CALL_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#QUEUE_SIZE_DESC">QUEUE_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#QUEUE_SIZE_NAME">QUEUE_SIZE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#READ_QUEUE_DESC">READ_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#READ_QUEUE_NAME">READ_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hb
 ase/ipc/MetricsHBaseServerSource.html#RECEIVED_BYTES_DESC">RECEIVED_BYTES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#RECEIVED_BYTES_NAME">RECEIVED_BYTES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#REPLICATION_QUEUE_DESC">REPLICATION_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#REPLICATION_QUEUE_NAME">REPLICATION_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#REQUEST_SIZE_DESC">REQUEST_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#REQUEST_SIZE_NAME">REQUEST_SIZE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#RESPONSE_SIZE_DESC">RESPONSE_SIZE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#RESPONSE_SIZE_NAME">RESPONSE_SIZE_NAME</a>, <a href="../../..
 /../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#SCAN_QUEUE_DESC">SCAN_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#SCAN_QUEUE_NAME">SCAN_QUEUE_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#SENT_BYTES_DESC">SENT_BYTES_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#SENT_BYTES_NAME">SENT_BYTES_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#TOTAL_CALL_TIME_DESC">TOTAL_CALL_TIME_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#TOTAL_CALL_TIME_NAME">TOTAL_CALL_TIME_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#WRITE_QUEUE_DESC">WRITE_QUEUE_DESC</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#WRITE_QUEUE_NAME">WRITE_QUEUE_NAME</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.metrics.ExceptionTrackingSource">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html b/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html
index 6997b4b..aa1048a 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -127,57 +127,69 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getNumOpenConnections--">getNumOpenConnections</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getPriorityQueueLength--">getPriorityQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getReadQueueLength--">getReadQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getReplicationQueueLength--">getReplicationQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getScanQueueLength--">getScanQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getTotalQueueSize--">getTotalQueueSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getWriteQueueLength--">getWriteQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
@@ -250,13 +262,40 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 <pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.36">getActiveRpcHandlerCount</a>()</pre>
 </li>
 </ul>
+<a name="getActiveGeneralRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveGeneralRpcHandlerCount</h4>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.38">getActiveGeneralRpcHandlerCount</a>()</pre>
+</li>
+</ul>
+<a name="getActivePriorityRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActivePriorityRpcHandlerCount</h4>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.40">getActivePriorityRpcHandlerCount</a>()</pre>
+</li>
+</ul>
+<a name="getActiveReplicationRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveReplicationRpcHandlerCount</h4>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.42">getActiveReplicationRpcHandlerCount</a>()</pre>
+</li>
+</ul>
 <a name="getNumGeneralCallsDropped--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumGeneralCallsDropped</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.38">getNumGeneralCallsDropped</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.44">getNumGeneralCallsDropped</a>()</pre>
 </li>
 </ul>
 <a name="getNumLifoModeSwitches--">
@@ -265,7 +304,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLifoModeSwitches</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.40">getNumLifoModeSwitches</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.46">getNumLifoModeSwitches</a>()</pre>
 </li>
 </ul>
 <a name="getWriteQueueLength--">
@@ -274,7 +313,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteQueueLength</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.42">getWriteQueueLength</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.48">getWriteQueueLength</a>()</pre>
 </li>
 </ul>
 <a name="getReadQueueLength--">
@@ -283,7 +322,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadQueueLength</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.44">getReadQueueLength</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.50">getReadQueueLength</a>()</pre>
 </li>
 </ul>
 <a name="getScanQueueLength--">
@@ -292,7 +331,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanQueueLength</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.46">getScanQueueLength</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.52">getScanQueueLength</a>()</pre>
 </li>
 </ul>
 <a name="getActiveWriteRpcHandlerCount--">
@@ -301,7 +340,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveWriteRpcHandlerCount</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.48">getActiveWriteRpcHandlerCount</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.54">getActiveWriteRpcHandlerCount</a>()</pre>
 </li>
 </ul>
 <a name="getActiveReadRpcHandlerCount--">
@@ -310,7 +349,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveReadRpcHandlerCount</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.50">getActiveReadRpcHandlerCount</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.56">getActiveReadRpcHandlerCount</a>()</pre>
 </li>
 </ul>
 <a name="getActiveScanRpcHandlerCount--">
@@ -319,7 +358,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/Me
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getActiveScanRpcHandlerCount</h4>
-<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.52">getActiveScanRpcHandlerCount</a>()</pre>
+<pre>int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#line.58">getActiveScanRpcHandlerCount</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html b/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html
index ed4ebb5..711dbe2 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -173,61 +173,73 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getNumOpenConnections--">getNumOpenConnections</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getPriorityQueueLength--">getPriorityQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getReadQueueLength--">getReadQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getReplicationQueueLength--">getReplicationQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getScanQueueLength--">getScanQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getTotalQueueSize--">getTotalQueueSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getWriteQueueLength--">getWriteQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#isServerStarted--">isServerStarted</a></span>()</code>&nbsp;</td>
 </tr>
@@ -374,13 +386,52 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 </dl>
 </li>
 </ul>
+<a name="getActiveGeneralRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveGeneralRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.86">getActiveGeneralRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActivePriorityRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActivePriorityRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.94">getActivePriorityRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveReplicationRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveReplicationRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.102">getActiveReplicationRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="getNumGeneralCallsDropped--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumGeneralCallsDropped</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.86">getNumGeneralCallsDropped</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.110">getNumGeneralCallsDropped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
@@ -393,7 +444,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLifoModeSwitches</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.94">getNumLifoModeSwitches</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.118">getNumLifoModeSwitches</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
@@ -406,7 +457,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.102">getWriteQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.126">getWriteQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getWriteQueueLength--">getWriteQueueLength</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
@@ -419,7 +470,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.110">getReadQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.134">getReadQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getReadQueueLength--">getReadQueueLength</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
@@ -432,7 +483,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.118">getScanQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.142">getScanQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getScanQueueLength--">getScanQueueLength</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
@@ -445,7 +496,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveWriteRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.126">getActiveWriteRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.150">getActiveWriteRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
@@ -458,7 +509,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveReadRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.134">getActiveReadRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.158">getActiveReadRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>
@@ -471,7 +522,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServe
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getActiveScanRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.142">getActiveScanRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#line.166">getActiveScanRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></code></dd>


[15/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
index f7bd99d..f5a70f3 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/class-use/RpcThrottlingException.html
@@ -124,19 +124,25 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">TimeBasedLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;writeSize,
-          long&nbsp;readSize)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TimeBasedLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-long-long-">checkQuota</a></span>(long&nbsp;writeReqs,
+          long&nbsp;estimateWriteSize,
+          long&nbsp;readReqs,
+          long&nbsp;estimateReadSize)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">QuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;estimateWriteSize,
+<td class="colLast"><span class="typeNameLabel">QuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-long-long-">checkQuota</a></span>(long&nbsp;writeReqs,
+          long&nbsp;estimateWriteSize,
+          long&nbsp;readReqs,
           long&nbsp;estimateReadSize)</code>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 </td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><span class="typeNameLabel">NoopQuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;estimateWriteSize,
+<td class="colLast"><span class="typeNameLabel">NoopQuotaLimiter.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-long-long-">checkQuota</a></span>(long&nbsp;writeReqs,
+          long&nbsp;estimateWriteSize,
+          long&nbsp;readReqs,
           long&nbsp;estimateReadSize)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html b/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
index 1158ff7..df2be42 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
@@ -237,6 +237,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#StoreFileInfo-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.FileStatus-org.apache.hadoop.hbase.io.Reference-org.apache.hadoop.hbase.io.HFileLink-">StoreFileInfo</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+             org.apache.hadoop.fs.FileSystem&nbsp;fs,
+             org.apache.hadoop.fs.FileStatus&nbsp;fileStatus,
+             <a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference,
+             <a href="../../../../../org/apache/hadoop/hbase/io/HFileLink.html" title="class in org.apache.hadoop.hbase.io">HFileLink</a>&nbsp;link)</code>
+<div class="block">Create a Store File Info from an HFileLink and a Reference</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#StoreFileInfo-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.Path-">StoreFileInfo</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
              org.apache.hadoop.fs.FileSystem&nbsp;fs,
              org.apache.hadoop.fs.Path&nbsp;initialPath)</code>
@@ -622,39 +631,55 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.164">StoreFileInfo</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                      org.apache.hadoop.fs.FileSystem&nbsp;fs,
                      org.apache.hadoop.fs.FileStatus&nbsp;fileStatus,
-                     <a href="../../../../../org/apache/hadoop/hbase/io/HFileLink.html" title="class in org.apache.hadoop.hbase.io">HFileLink</a>&nbsp;link)
-              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+                     <a href="../../../../../org/apache/hadoop/hbase/io/HFileLink.html" title="class in org.apache.hadoop.hbase.io">HFileLink</a>&nbsp;link)</pre>
 <div class="block">Create a Store File Info from an HFileLink</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>conf</code> - the <code>Configuration</code> to use</dd>
-<dd><code>fs</code> - The current file system to use.</dd>
+<dd><code>conf</code> - The <code>Configuration</code> to use</dd>
+<dd><code>fs</code> - The current file system to use</dd>
 <dd><code>fileStatus</code> - The <code>FileStatus</code> of the file</dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 </dl>
 </li>
 </ul>
 <a name="StoreFileInfo-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.FileStatus-org.apache.hadoop.hbase.io.Reference-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>StoreFileInfo</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.184">StoreFileInfo</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.182">StoreFileInfo</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                      org.apache.hadoop.fs.FileSystem&nbsp;fs,
                      org.apache.hadoop.fs.FileStatus&nbsp;fileStatus,
-                     <a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference)
-              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+                     <a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference)</pre>
 <div class="block">Create a Store File Info from an HFileLink</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>conf</code> - </dd>
-<dd><code>fs</code> - </dd>
-<dd><code>fileStatus</code> - </dd>
-<dd><code>reference</code> - </dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code>conf</code> - The <code>Configuration</code> to use</dd>
+<dd><code>fs</code> - The current file system to use</dd>
+<dd><code>fileStatus</code> - The <code>FileStatus</code> of the file</dd>
+<dd><code>reference</code> - The reference instance</dd>
+</dl>
+</li>
+</ul>
+<a name="StoreFileInfo-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.FileStatus-org.apache.hadoop.hbase.io.Reference-org.apache.hadoop.hbase.io.HFileLink-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>StoreFileInfo</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.200">StoreFileInfo</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                     org.apache.hadoop.fs.FileSystem&nbsp;fs,
+                     org.apache.hadoop.fs.FileStatus&nbsp;fileStatus,
+                     <a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference,
+                     <a href="../../../../../org/apache/hadoop/hbase/io/HFileLink.html" title="class in org.apache.hadoop.hbase.io">HFileLink</a>&nbsp;link)</pre>
+<div class="block">Create a Store File Info from an HFileLink and a Reference</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>conf</code> - The <code>Configuration</code> to use</dd>
+<dd><code>fs</code> - The current file system to use</dd>
+<dd><code>fileStatus</code> - The <code>FileStatus</code> of the file</dd>
+<dd><code>reference</code> - The reference instance</dd>
+<dd><code>link</code> - The link instance</dd>
 </dl>
 </li>
 </ul>
@@ -672,7 +697,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setRegionCoprocessorHost</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.199">setRegionCoprocessorHost</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a>&nbsp;coprocessorHost)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.214">setRegionCoprocessorHost</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a>&nbsp;coprocessorHost)</pre>
 <div class="block">Sets the region coprocessor env.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -686,7 +711,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getReference</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.207">getReference</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.222">getReference</a>()</pre>
 </li>
 </ul>
 <a name="isReference--">
@@ -695,7 +720,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isReference</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.212">isReference</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.227">isReference</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if the store file is a Reference</dd>
@@ -708,7 +733,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isTopReference</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.217">isTopReference</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.232">isTopReference</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if the store file is a top Reference</dd>
@@ -721,7 +746,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isLink</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.222">isLink</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.237">isLink</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if the store file is a link</dd>
@@ -734,7 +759,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getHDFSBlockDistribution</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.227">getHDFSBlockDistribution</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.242">getHDFSBlockDistribution</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the HDFS block distribution</dd>
@@ -747,7 +772,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>open</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.237">open</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.252">open</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                             <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf,
                             boolean&nbsp;canUseDropBehind,
                             long&nbsp;readahead,
@@ -773,7 +798,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>computeHDFSBlocksDistribution</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.284">computeHDFSBlocksDistribution</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.299">computeHDFSBlocksDistribution</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs)
                                                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Compute the HDFS Block Distribution for this StoreFile</div>
 <dl>
@@ -788,7 +813,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>computeHDFSBlocksDistributionInternal</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.304">computeHDFSBlocksDistributionInternal</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.319">computeHDFSBlocksDistributionInternal</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs)
                                                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -802,7 +827,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getReferencedFileStatus</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.FileStatus&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.319">getReferencedFileStatus</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs)
+<pre>public&nbsp;org.apache.hadoop.fs.FileStatus&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.334">getReferencedFileStatus</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs)
                                                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Get the <code>FileStatus</code> of the file referenced by this StoreFileInfo</div>
 <dl>
@@ -821,7 +846,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getPath</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.360">getPath</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.375">getPath</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The <code>Path</code> of the file</dd>
@@ -834,7 +859,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileStatus</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.FileStatus&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.365">getFileStatus</a>()
+<pre>public&nbsp;org.apache.hadoop.fs.FileStatus&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.380">getFileStatus</a>()
                                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -850,7 +875,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getModificationTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.370">getModificationTime</a>()
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.385">getModificationTime</a>()
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -866,7 +891,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.375">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.390">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -879,7 +904,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isHFile</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.384">isHFile</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.399">isHFile</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>path</code> - Path to check.</dd>
@@ -894,7 +919,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isHFile</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.388">isHFile</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fileName)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.403">isHFile</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fileName)</pre>
 </li>
 </ul>
 <a name="isDelFile-org.apache.hadoop.fs.Path-">
@@ -903,7 +928,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isDelFile</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.397">isDelFile</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.412">isDelFile</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>path</code> - Path to check.</dd>
@@ -918,7 +943,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isDelFile</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.405">isDelFile</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fileName)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.420">isDelFile</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fileName)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>fileName</code> - Sting version of path to validate.</dd>
@@ -933,7 +958,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isReference</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.414">isReference</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.429">isReference</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>path</code> - Path to check.</dd>
@@ -948,7 +973,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isReference</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.422">isReference</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.437">isReference</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>name</code> - file name to check.</dd>
@@ -963,7 +988,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getCreatedTimestamp</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.430">getCreatedTimestamp</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.445">getCreatedTimestamp</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp when this file was created (as returned by filesystem)</dd>
@@ -976,7 +1001,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getReferredToFile</h4>
-<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.441">getReferredToFile</a>(org.apache.hadoop.fs.Path&nbsp;p)</pre>
+<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.456">getReferredToFile</a>(org.apache.hadoop.fs.Path&nbsp;p)</pre>
 </li>
 </ul>
 <a name="validateStoreFileName-java.lang.String-">
@@ -985,7 +1010,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>validateStoreFileName</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.470">validateStoreFileName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fileName)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.485">validateStoreFileName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;fileName)</pre>
 <div class="block">Validate the store file name.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1001,7 +1026,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isValid</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.481">isValid</a>(org.apache.hadoop.fs.FileStatus&nbsp;fileStatus)
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.496">isValid</a>(org.apache.hadoop.fs.FileStatus&nbsp;fileStatus)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Return if the specified file is a valid store file or not.</div>
 <dl>
@@ -1020,7 +1045,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>computeRefFileHDFSBlockDistribution</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.512">computeRefFileHDFSBlockDistribution</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HDFSBlocksDistribution.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.527">computeRefFileHDFSBlockDistribution</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                                                           <a href="../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference,
                                                                           org.apache.hadoop.fs.FileStatus&nbsp;status)
                                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1049,7 +1074,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.533">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;that)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.548">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;that)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1062,7 +1087,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.558">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.573">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1075,7 +1100,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getActiveFileName</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.573">getActiveFileName</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#line.588">getActiveFileName</a>()</pre>
 <div class="block">Return the active file name that contains the real data.
  <p>
  For referenced hfile, we will return the name of the reference file as it will be used to

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/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 b438561..96a082f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -704,20 +704,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 </ul>
 </li>
 </ul>

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

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

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

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

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


[22/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.


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

Branch: refs/heads/asf-site
Commit: 8bc57a1a277bc0ef1998aa33e1043ce08e5df096
Parents: 84a296a
Author: jenkins <bu...@apache.org>
Authored: Sat Apr 21 14:47:17 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Sat Apr 21 14:47:17 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |  9510 ++++++-------
 book.html                                       |     2 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 11892 ++++++++---------
 checkstyle.rss                                  |     4 +-
 coc.html                                        |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/constant-values.html                 |    50 +-
 devapidocs/index-all.html                       |    66 +-
 .../hadoop/hbase/backup/package-tree.html       |     4 +-
 .../hadoop/hbase/client/package-tree.html       |    22 +-
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |    10 +-
 .../hadoop/hbase/io/class-use/HFileLink.html    |     9 +
 .../hadoop/hbase/io/class-use/Reference.html    |     9 +
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../hadoop/hbase/ipc/FifoRpcScheduler.html      |   117 +-
 .../hbase/ipc/MetricsHBaseServerSource.html     |   146 +-
 .../hbase/ipc/MetricsHBaseServerSourceImpl.html |     2 +-
 .../hbase/ipc/MetricsHBaseServerWrapper.html    |    83 +-
 .../ipc/MetricsHBaseServerWrapperImpl.html      |    97 +-
 .../apache/hadoop/hbase/ipc/RpcScheduler.html   |   100 +-
 .../hadoop/hbase/ipc/SimpleRpcScheduler.html    |   119 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../hbase/master/balancer/package-tree.html     |     2 +-
 .../hadoop/hbase/master/package-tree.html       |     4 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    14 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     4 +-
 .../hadoop/hbase/quotas/NoopQuotaLimiter.html   |    34 +-
 .../hadoop/hbase/quotas/QuotaLimiter.html       |    36 +-
 .../hadoop/hbase/quotas/TimeBasedLimiter.html   |    54 +-
 .../class-use/RpcThrottlingException.html       |    14 +-
 .../hadoop/hbase/quotas/package-tree.html       |     8 +-
 .../hbase/regionserver/StoreFileInfo.html       |   113 +-
 .../hadoop/hbase/regionserver/package-tree.html |    14 +-
 .../regionserver/querymatcher/package-tree.html |     2 +-
 .../hbase/regionserver/wal/package-tree.html    |     2 +-
 .../replication/regionserver/package-tree.html  |     2 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../thrift/ThriftServerRunner.HBaseHandler.html |   142 +-
 .../ThriftServerRunner.IOErrorWithCause.html    |    12 +-
 .../thrift/ThriftServerRunner.ImplType.html     |    38 +-
 ...ThriftServerRunner.ResultScannerWrapper.html |    12 +-
 .../hadoop/hbase/thrift/ThriftServerRunner.html |   108 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 .../hbase/util/ServerRegionReplicaUtil.html     |    12 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    10 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../ipc/FifoRpcScheduler.FifoCallRunner.html    |    96 +-
 .../hadoop/hbase/ipc/FifoRpcScheduler.html      |    96 +-
 .../hbase/ipc/MetricsHBaseServerSource.html     |    64 +-
 .../hbase/ipc/MetricsHBaseServerSourceImpl.html |    50 +-
 .../hbase/ipc/MetricsHBaseServerWrapper.html    |    24 +-
 .../ipc/MetricsHBaseServerWrapperImpl.html      |    58 +-
 .../hadoop/hbase/ipc/RpcScheduler.Context.html  |    65 +-
 .../apache/hadoop/hbase/ipc/RpcScheduler.html   |    65 +-
 .../hadoop/hbase/ipc/SimpleRpcScheduler.html    |   158 +-
 .../hbase/quotas/DefaultOperationQuota.html     |     4 +-
 .../hadoop/hbase/quotas/NoopQuotaLimiter.html   |     6 +-
 .../hadoop/hbase/quotas/QuotaLimiter.html       |    80 +-
 .../hadoop/hbase/quotas/TimeBasedLimiter.html   |   173 +-
 .../hbase/regionserver/StoreFileInfo.html       |   831 +-
 .../thrift/ThriftServerRunner.HBaseHandler.html |  3880 +++---
 .../ThriftServerRunner.IOErrorWithCause.html    |  3880 +++---
 .../thrift/ThriftServerRunner.ImplType.html     |  3880 +++---
 ...ThriftServerRunner.ResultScannerWrapper.html |  3880 +++---
 .../hadoop/hbase/thrift/ThriftServerRunner.html |  3880 +++---
 .../hbase/util/ServerRegionReplicaUtil.html     |   153 +-
 export_control.html                             |     4 +-
 index.html                                      |     4 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     4 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 testdevapidocs/index-all.html                   |    20 +-
 ...estMetaTableAccessor.SpyingRpcScheduler.html |     2 +-
 ...oreSnapshotFromClientWithRegionReplicas.html |    10 +-
 .../hadoop/hbase/http/TestHttpServer.html       |    38 +-
 .../hbase/ipc/DelegatingRpcScheduler.html       |   103 +-
 .../ipc/MetricsHBaseServerWrapperStub.html      |    95 +-
 .../apache/hadoop/hbase/ipc/TestRpcMetrics.html |     4 +-
 .../org/apache/hadoop/hbase/package-tree.html   |     8 +-
 .../hadoop/hbase/procedure/package-tree.html    |     8 +-
 .../hadoop/hbase/quotas/TestQuotaState.html     |    23 +-
 .../hadoop/hbase/regionserver/package-tree.html |     2 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     4 +-
 .../hbase/thrift/TestThriftHttpServer.html      |    84 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 ...oreSnapshotFromClientWithRegionReplicas.html |    72 +-
 .../TestHttpServer.DummyFilterInitializer.html  |    39 +-
 .../http/TestHttpServer.DummyServletFilter.html |    39 +-
 .../http/TestHttpServer.EchoMapServlet.html     |    39 +-
 .../hbase/http/TestHttpServer.EchoServlet.html  |    39 +-
 .../http/TestHttpServer.HtmlContentServlet.html |    39 +-
 .../http/TestHttpServer.LongHeaderServlet.html  |    39 +-
 .../http/TestHttpServer.MyGroupsProvider.html   |    39 +-
 .../hadoop/hbase/http/TestHttpServer.html       |    39 +-
 .../hbase/ipc/DelegatingRpcScheduler.html       |    51 +-
 .../ipc/MetricsHBaseServerWrapperStub.html      |    45 +-
 .../apache/hadoop/hbase/ipc/TestRpcMetrics.html |   201 +-
 .../hadoop/hbase/quotas/TestQuotaState.html     |    96 +-
 .../regionserver/TestHRegionReplayEvents.html   |    10 +-
 .../hbase/thrift/TestThriftHttpServer.html      |   409 +-
 126 files changed, 23461 insertions(+), 22482 deletions(-)
----------------------------------------------------------------------


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


[21/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 7ac23b6..396a172 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20180420144439+00'00')
-/CreationDate (D:20180420144439+00'00')
+/ModDate (D:20180421142950+00'00')
+/CreationDate (D:20180421144439+00'00')
 >>
 endobj
 2 0 obj
@@ -32028,7 +32028,7 @@ endobj
 endobj
 157 0 obj
 << /Limits [(__anchor-top) (adding.new.node)]
-/Names [(__anchor-top) 25 0 R (__indexterm-7613324) 3545 0 R (__indexterm-7615728) 3547 0 R (__indexterm-7617276) 3549 0 R (__indexterm-7619796) 3552 0 R (acid) 936 0 R (acl) 3356 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3645 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3647 0 R (add.metrics) 3643 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3887 0 R (adding.new.node) 3102 0 R]
+/Names [(__anchor-top) 25 0 R (__indexterm-2002) 3545 0 R (__indexterm-2004) 3547 0 R (__indexterm-2006) 3549 0 R (__indexterm-2008) 3552 0 R (acid) 936 0 R (acl) 3356 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3645 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3647 0 R (add.metrics) 3643 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3887 0 R (adding.new.node) 3102 0 R]
 >>
 endobj
 158 0 obj
@@ -800821,4762 +800821,4762 @@ xref
 0000519751 00000 n 
 0000520162 00000 n 
 0000520209 00000 n 
-0000520717 00000 n 
-0000521058 00000 n 
-0000521207 00000 n 
-0000521427 00000 n 
-0000521474 00000 n 
-0000536662 00000 n 
-0000537081 00000 n 
-0000537127 00000 n 
-0000537252 00000 n 
-0000537378 00000 n 
-0000537424 00000 n 
-0000537548 00000 n 
-0000537594 00000 n 
-0000537640 00000 n 
-0000548886 00000 n 
-0000549337 00000 n 
-0000549521 00000 n 
-0000549753 00000 n 
-0000549983 00000 n 
-0000550029 00000 n 
-0000550157 00000 n 
-0000550291 00000 n 
-0000550338 00000 n 
-0000550484 00000 n 
-0000550609 00000 n 
-0000569270 00000 n 
-0000569655 00000 n 
-0000569785 00000 n 
-0000569929 00000 n 
-0000574618 00000 n 
-0000574977 00000 n 
-0000585005 00000 n 
-0000585395 00000 n 
-0000585441 00000 n 
-0000585572 00000 n 
-0000596438 00000 n 
-0000596841 00000 n 
-0000596887 00000 n 
-0000596933 00000 n 
-0000597075 00000 n 
-0000597121 00000 n 
-0000597167 00000 n 
-0000597214 00000 n 
-0000597261 00000 n 
-0000605049 00000 n 
-0000605408 00000 n 
-0000605454 00000 n 
-0000605501 00000 n 
-0000605548 00000 n 
-0000606152 00000 n 
-0000606199 00000 n 
-0000606246 00000 n 
-0000606292 00000 n 
-0000615083 00000 n 
-0000615442 00000 n 
-0000615488 00000 n 
-0000615535 00000 n 
-0000615582 00000 n 
-0000615629 00000 n 
-0000615676 00000 n 
-0000615722 00000 n 
-0000623349 00000 n 
-0000623708 00000 n 
-0000623756 00000 n 
-0000624442 00000 n 
-0000624490 00000 n 
-0000624538 00000 n 
-0000624586 00000 n 
-0000624634 00000 n 
-0000624681 00000 n 
-0000635763 00000 n 
-0000636122 00000 n 
-0000636169 00000 n 
-0000636216 00000 n 
-0000636262 00000 n 
-0000644211 00000 n 
-0000644570 00000 n 
-0000644617 00000 n 
-0000644664 00000 n 
-0000644711 00000 n 
-0000644758 00000 n 
-0000644805 00000 n 
-0000645578 00000 n 
-0000645624 00000 n 
-0000654093 00000 n 
-0000654452 00000 n 
-0000654499 00000 n 
-0000654546 00000 n 
-0000654593 00000 n 
-0000654640 00000 n 
-0000654687 00000 n 
-0000654733 00000 n 
-0000663824 00000 n 
-0000664209 00000 n 
-0000664256 00000 n 
-0000664489 00000 n 
-0000664721 00000 n 
-0000664768 00000 n 
-0000664815 00000 n 
-0000664862 00000 n 
-0000664907 00000 n 
-0000672944 00000 n 
-0000673345 00000 n 
-0000673393 00000 n 
-0000673639 00000 n 
-0000673884 00000 n 
-0000673932 00000 n 
-0000674178 00000 n 
-0000674423 00000 n 
-0000674471 00000 n 
-0000674519 00000 n 
-0000675052 00000 n 
-0000675100 00000 n 
-0000675148 00000 n 
-0000684161 00000 n 
-0000684533 00000 n 
-0000684581 00000 n 
-0000684629 00000 n 
-0000684677 00000 n 
-0000684725 00000 n 
-0000684773 00000 n 
-0000694088 00000 n 
-0000694473 00000 n 
-0000694521 00000 n 
-0000694569 00000 n 
-0000694617 00000 n 
-0000694665 00000 n 
-0000695180 00000 n 
-0000695377 00000 n 
-0000695572 00000 n 
-0000695620 00000 n 
-0000703955 00000 n 
-0000704314 00000 n 
-0000704361 00000 n 
-0000704408 00000 n 
-0000704455 00000 n 
-0000704502 00000 n 
-0000704549 00000 n 
-0000704595 00000 n 
-0000711508 00000 n 
-0000711867 00000 n 
-0000711914 00000 n 
-0000711961 00000 n 
-0000712008 00000 n 
-0000712055 00000 n 
-0000712102 00000 n 
-0000712149 00000 n 
-0000721699 00000 n 
-0000722058 00000 n 
-0000722104 00000 n 
-0000722151 00000 n 
-0000722198 00000 n 
-0000722245 00000 n 
-0000722292 00000 n 
-0000731129 00000 n 
-0000731488 00000 n 
-0000731534 00000 n 
-0000731581 00000 n 
-0000731628 00000 n 
-0000731675 00000 n 
-0000732356 00000 n 
-0000732403 00000 n 
-0000742221 00000 n 
-0000742580 00000 n 
-0000742626 00000 n 
-0000742673 00000 n 
-0000742720 00000 n 
-0000742767 00000 n 
-0000742814 00000 n 
-0000753370 00000 n 
-0000753729 00000 n 
-0000753776 00000 n 
-0000753823 00000 n 
-0000753870 00000 n 
-0000753916 00000 n 
-0000762634 00000 n 
-0000762993 00000 n 
-0000763041 00000 n 
-0000763089 00000 n 
-0000763137 00000 n 
-0000763185 00000 n 
-0000763233 00000 n 
-0000770752 00000 n 
-0000771111 00000 n 
-0000771158 00000 n 
-0000771205 00000 n 
-0000771252 00000 n 
-0000771299 00000 n 
-0000771346 00000 n 
-0000771392 00000 n 
-0000779945 00000 n 
-0000780330 00000 n 
-0000780377 00000 n 
-0000780577 00000 n 
-0000780624 00000 n 
-0000780671 00000 n 
-0000780718 00000 n 
-0000780906 00000 n 
-0000780951 00000 n 
-0000789605 00000 n 
-0000789964 00000 n 
-0000790011 00000 n 
-0000790494 00000 n 
-0000790541 00000 n 
-0000790588 00000 n 
-0000790635 00000 n 
-0000790682 00000 n 
-0000791275 00000 n 
-0000800111 00000 n 
-0000800520 00000 n 
-0000800568 00000 n 
-0000801343 00000 n 
-0000801391 00000 n 
-0000801620 00000 n 
-0000801848 00000 n 
-0000801896 00000 n 
-0000802095 00000 n 
-0000802143 00000 n 
-0000802340 00000 n 
-0000802536 00000 n 
-0000802584 00000 n 
-0000802631 00000 n 
-0000810500 00000 n 
-0000810859 00000 n 
-0000810906 00000 n 
-0000810953 00000 n 
-0000811000 00000 n 
-0000811047 00000 n 
-0000811093 00000 n 
-0000819609 00000 n 
-0000819968 00000 n 
-0000820015 00000 n 
-0000820062 00000 n 
-0000820109 00000 n 
-0000820156 00000 n 
-0000820203 00000 n 
-0000820860 00000 n 
-0000829276 00000 n 
-0000829635 00000 n 
-0000829681 00000 n 
-0000829728 00000 n 
-0000829775 00000 n 
-0000829822 00000 n 
-0000829869 00000 n 
-0000838077 00000 n 
-0000838436 00000 n 
-0000838482 00000 n 
-0000838529 00000 n 
-0000838576 00000 n 
-0000838623 00000 n 
-0000838670 00000 n 
-0000838716 00000 n 
-0000846417 00000 n 
-0000846776 00000 n 
-0000846822 00000 n 
-0000847530 00000 n 
-0000847577 00000 n 
-0000847624 00000 n 
-0000847671 00000 n 
-0000847718 00000 n 
-0000847764 00000 n 
-0000854929 00000 n 
-0000855288 00000 n 
-0000855334 00000 n 
-0000855381 00000 n 
-0000855813 00000 n 
-0000855860 00000 n 
-0000855907 00000 n 
-0000855954 00000 n 
-0000856000 00000 n 
-0000856047 00000 n 
-0000864024 00000 n 
-0000864383 00000 n 
-0000864430 00000 n 
-0000864477 00000 n 
-0000864524 00000 n 
-0000864571 00000 n 
-0000864618 00000 n 
-0000864664 00000 n 
-0000874130 00000 n 
-0000874489 00000 n 
-0000874536 00000 n 
-0000874583 00000 n 
-0000874630 00000 n 
-0000875369 00000 n 
-0000875416 00000 n 
-0000883335 00000 n 
-0000883694 00000 n 
-0000883740 00000 n 
-0000883787 00000 n 
-0000883834 00000 n 
-0000883881 00000 n 
-0000883928 00000 n 
-0000883974 00000 n 
-0000884020 00000 n 
-0000891842 00000 n 
-0000892227 00000 n 
-0000892274 00000 n 
-0000892972 00000 n 
-0000893019 00000 n 
-0000893066 00000 n 
-0000893113 00000 n 
-0000893159 00000 n 
-0000893810 00000 n 
-0000894057 00000 n 
-0000894304 00000 n 
-0000894350 00000 n 
-0000904437 00000 n 
-0000904836 00000 n 
-0000904883 00000 n 
-0000905132 00000 n 
-0000905381 00000 n 
-0000905428 00000 n 
-0000905475 00000 n 
-0000905651 00000 n 
-0000905699 00000 n 
-0000905746 00000 n 
-0000915046 00000 n 
-0000915405 00000 n 
-0000915452 00000 n 
-0000915499 00000 n 
-0000916245 00000 n 
-0000916292 00000 n 
-0000916339 00000 n 
-0000925375 00000 n 
-0000925734 00000 n 
-0000925781 00000 n 
-0000925828 00000 n 
-0000925875 00000 n 
-0000925922 00000 n 
-0000925969 00000 n 
-0000933656 00000 n 
-0000934015 00000 n 
-0000934062 00000 n 
-0000934109 00000 n 
-0000934156 00000 n 
-0000934203 00000 n 
-0000934250 00000 n 
-0000934297 00000 n 
-0000942122 00000 n 
-0000942481 00000 n 
-0000942528 00000 n 
-0000942575 00000 n 
-0000942622 00000 n 
-0000943059 00000 n 
-0000943106 00000 n 
-0000943153 00000 n 
-0000943199 00000 n 
-0000950833 00000 n 
-0000951205 00000 n 
-0000951252 00000 n 
-0000951299 00000 n 
-0000951346 00000 n 
-0000951393 00000 n 
-0000951439 00000 n 
-0000951485 00000 n 
-0000966800 00000 n 
-0000967190 00000 n 
-0000967236 00000 n 
-0000967282 00000 n 
-0000967502 00000 n 
-0000978109 00000 n 
-0000978499 00000 n 
-0000978718 00000 n 
-0000978764 00000 n 
-0000996772 00000 n 
-0000997157 00000 n 
-0000997203 00000 n 
-0000997249 00000 n 
-0000997295 00000 n 
-0001004203 00000 n 
-0001004575 00000 n 
-0001004621 00000 n 
-0001004667 00000 n 
-0001015183 00000 n 
-0001015626 00000 n 
-0001015672 00000 n 
-0001015718 00000 n 
-0001015835 00000 n 
-0001015956 00000 n 
-0001016002 00000 n 
-0001016193 00000 n 
-0001016381 00000 n 
-0001016572 00000 n 
-0001016618 00000 n 
-0001016664 00000 n 
-0001016710 00000 n 
-0001016756 00000 n 
-0001016878 00000 n 
-0001016923 00000 n 
-0001028697 00000 n 
-0001029116 00000 n 
-0001029162 00000 n 
-0001029208 00000 n 
-0001029335 00000 n 
-0001029381 00000 n 
-0001029427 00000 n 
-0001029552 00000 n 
-0001029598 00000 n 
-0001030299 00000 n 
-0001030418 00000 n 
-0001044816 00000 n 
-0001045219 00000 n 
-0001045265 00000 n 
-0001045411 00000 n 
-0001057510 00000 n 
-0001057961 00000 n 
-0001058007 00000 n 
-0001058141 00000 n 
-0001058411 00000 n 
-0001058539 00000 n 
-0001058586 00000 n 
-0001058633 00000 n 
-0001058680 00000 n 
-0001058825 00000 n 
-0001058872 00000 n 
-0001058919 00000 n 
-0001059111 00000 n 
-0001059404 00000 n 
-0001059598 00000 n 
-0001069103 00000 n 
-0001069501 00000 n 
-0001069547 00000 n 
-0001069769 00000 n 
-0001069962 00000 n 
-0001088288 00000 n 
-0001088686 00000 n 
-0001088732 00000 n 
-0001088951 00000 n 
-0001089145 00000 n 
-0001100528 00000 n 
-0001100900 00000 n 
-0001112069 00000 n 
-0001112441 00000 n 
-0001130758 00000 n 
-0001131130 00000 n 
-0001131176 00000 n 
-0001151185 00000 n 
-0001151531 00000 n 
-0001153351 00000 n 
-0001153697 00000 n 
-0001156040 00000 n 
-0001156436 00000 n 
-0001156482 00000 n 
-0001156610 00000 n 
-0001156781 00000 n 
-0001156903 00000 n 
-0001157051 00000 n 
-0001157197 00000 n 
-0001167447 00000 n 
-0001167824 00000 n 
-0001167870 00000 n 
-0001167916 00000 n 
-0001168080 00000 n 
-0001168127 00000 n 
-0001181301 00000 n 
-0001181707 00000 n 
-0001181911 00000 n 
-0001182117 00000 n 
-0001182321 00000 n 
-0001211597 00000 n 
-0001212008 00000 n 
-0001212055 00000 n 
-0001212272 00000 n 
-0001212542 00000 n 
-0001225875 00000 n 
-0001226278 00000 n 
-0001226547 00000 n 
-0001226592 00000 n 
-0001226638 00000 n 
-0001226684 00000 n 
-0001226730 00000 n 
-0001234749 00000 n 
-0001235179 00000 n 
-0001235225 00000 n 
-0001235358 00000 n 
-0001235491 00000 n 
-0001235611 00000 n 
-0001235657 00000 n 
-0001235793 00000 n 
-0001235928 00000 n 
-0001236066 00000 n 
-0001248831 00000 n 
-0001249208 00000 n 
-0001249254 00000 n 
-0001249627 00000 n 
-0001249802 00000 n 
-0001250000 00000 n 
-0001250046 00000 n 
-0001250192 00000 n 
-0001260115 00000 n 
-0001260474 00000 n 
-0001260520 00000 n 
-0001260567 00000 n 
-0001271328 00000 n 
-0001271718 00000 n 
-0001271765 00000 n 
-0001271977 00000 n 
-0001279144 00000 n 
-0001279503 00000 n 
-0001290611 00000 n 
-0001290996 00000 n 
-0001291042 00000 n 
-0001291088 00000 n 
-0001291134 00000 n 
-0001291180 00000 n 
-0001291317 00000 n 
-0001291364 00000 n 
-0001291411 00000 n 
-0001291548 00000 n 
-0001308409 00000 n 
-0001308858 00000 n 
-0001308999 00000 n 
-0001309140 00000 n 
-0001309287 00000 n 
-0001309432 00000 n 
-0001309579 00000 n 
-0001309725 00000 n 
-0001309872 00000 n 
-0001310018 00000 n 
-0001310064 00000 n 
-0001310111 00000 n 
-0001310243 00000 n 
-0001310375 00000 n 
-0001323741 00000 n 
-0001324121 00000 n 
-0001324243 00000 n 
-0001324289 00000 n 
-0001324336 00000 n 
-0001324531 00000 n 
-0001324577 00000 n 
-0001325007 00000 n 
-0001325202 00000 n 
-0001338549 00000 n 
-0001338950 00000 n 
-0001338996 00000 n 
-0001339144 00000 n 
-0001339191 00000 n 
-0001339359 00000 n 
-0001339543 00000 n 
-0001339739 00000 n 
-0001339786 00000 n 
-0001350392 00000 n 
-0001350772 00000 n 
-0001350818 00000 n 
-0001351014 00000 n 
-0001351061 00000 n 
-0001351108 00000 n 
-0001351241 00000 n 
-0001351372 00000 n 
-0001351419 00000 n 
-0001351465 00000 n 
-0001366742 00000 n 
-0001367143 00000 n 
-0001367279 00000 n 
-0001367325 00000 n 
-0001367446 00000 n 
-0001367493 00000 n 
-0001367689 00000 n 
-0001367736 00000 n 
-0001367783 00000 n 
-0001367920 00000 n 
-0001367966 00000 n 
-0001381473 00000 n 
-0001381866 00000 n 
-0001381911 00000 n 
-0001381958 00000 n 
-0001382005 00000 n 
-0001382505 00000 n 
-0001382655 00000 n 
-0001382804 00000 n 
-0001382931 00000 n 
-0001382978 00000 n 
-0001383025 00000 n 
-0001398312 00000 n 
-0001398830 00000 n 
-0001398876 00000 n 
-0001399003 00000 n 
-0001399129 00000 n 
-0001399325 00000 n 
-0001399372 00000 n 
-0001399567 00000 n 
-0001399761 00000 n 
-0001399958 00000 n 
-0001400155 00000 n 
-0001400352 00000 n 
-0001400549 00000 n 
-0001400746 00000 n 
-0001400940 00000 n 
-0001401136 00000 n 
-0001401332 00000 n 
-0001401669 00000 n 
-0001402006 00000 n 
-0001402273 00000 n 
-0001402448 00000 n 
-0001402495 00000 n 
-0001412862 00000 n 
-0001413221 00000 n 
-0001413267 00000 n 
-0001413312 00000 n 
-0001413358 00000 n 
-0001413403 00000 n 
-0001415150 00000 n 
-0001415496 00000 n 
-0001415542 00000 n 
-0001415587 00000 n 
-0001420445 00000 n 
-0001420838 00000 n 
-0001420884 00000 n 
-0001421044 00000 n 
-0001421172 00000 n 
-0001421380 00000 n 
-0001423561 00000 n 
-0001423933 00000 n 
-0001423979 00000 n 
-0001427176 00000 n 
-0001427553 00000 n 
-0001427599 00000 n 
-0001427793 00000 n 
-0001437523 00000 n 
-0001437926 00000 n 
-0001437972 00000 n 
-0001438113 00000 n 
-0001446516 00000 n 
-0001446888 00000 n 
-0001446935 00000 n 
-0001450292 00000 n 
-0001450664 00000 n 
-0001450710 00000 n 
-0001458281 00000 n 
-0001458640 00000 n 
-0001462736 00000 n 
-0001463108 00000 n 
-0001463154 00000 n 
-0001470449 00000 n 
-0001470808 00000 n 
-0001470854 00000 n 
-0001470900 00000 n 
-0001479813 00000 n 
-0001480159 00000 n 
-0001490113 00000 n 
-0001490485 00000 n 
-0001490531 00000 n 
-0001490577 00000 n 
-0001507461 00000 n 
-0001507838 00000 n 
-0001508057 00000 n 
-0001508103 00000 n 
-0001508465 00000 n 
-0001508511 00000 n 
-0001564303 00000 n 
-0001564675 00000 n 
-0001564721 00000 n 
-0001564767 00000 n 
-0001564813 00000 n 
-0001569449 00000 n 
-0001569808 00000 n 
-0001569854 00000 n 
-0001569900 00000 n 
-0001580089 00000 n 
-0001580461 00000 n 
-0001580507 00000 n 
-0001612346 00000 n 
-0001612765 00000 n 
-0001612811 00000 n 
-0001612994 00000 n 
-0001613245 00000 n 
-0001613439 00000 n 
-0001643566 00000 n 
-0001643912 00000 n 
-0001662640 00000 n 
-0001663030 00000 n 
-0001663076 00000 n 
-0001663206 00000 n 
-0001675149 00000 n 
-0001675555 00000 n 
-0001675601 00000 n 
-0001675795 00000 n 
-0001675987 00000 n 
-0001676180 00000 n 
-0001676226 00000 n 
-0001676273 00000 n 
-0001678583 00000 n 
-0001678942 00000 n 
-0001679590 00000 n 
-0001679936 00000 n 
-0001679982 00000 n 
-0001681221 00000 n 
-0001681567 00000 n 
-0001681613 00000 n 
-0001687100 00000 n 
-0001687472 00000 n 
-0001687518 00000 n 
-0001688725 00000 n 
-0001689097 00000 n 
-0001689143 00000 n 
-0001713691 00000 n 
-0001714124 00000 n 
-0001714170 00000 n 
-0001714386 00000 n 
-0001714432 00000 n 
-0001714643 00000 n 
-0001714902 00000 n 
-0001714948 00000 n 
-0001715161 00000 n 
-0001715420 00000 n 
-0001715680 00000 n 
-0001715726 00000 n 
-0001715939 00000 n 
-0001716170 00000 n 
-0001719002 00000 n 
-0001719403 00000 n 
-0001719449 00000 n 
-0001720020 00000 n 
-0001720236 00000 n 
-0001720501 00000 n 
-0001720630 00000 n 
-0001720756 00000 n 
-0001734544 00000 n 
-0001734978 00000 n 
-0001735024 00000 n 
-0001735549 00000 n 
-0001735742 00000 n 
-0001735932 00000 n 
-0001735978 00000 n 
-0001736630 00000 n 
-0001736857 00000 n 
-0001737036 00000 n 
-0001737215 00000 n 
-0001760063 00000 n 
-0001760521 00000 n 
-0001760745 00000 n 
-0001760883 00000 n 
-0001760930 00000 n 
-0001760977 00000 n 
-0001761197 00000 n 
-0001761417 00000 n 
-0001761654 00000 n 
-0001761897 00000 n 
-0001761944 00000 n 
-0001804107 00000 n 
-0001804466 00000 n 
-0001804512 00000 n 
-0001804558 00000 n 
-0001804604 00000 n 
-0001804650 00000 n 
-0001819330 00000 n 
-0001819786 00000 n 
-0001819832 00000 n 
-0001820041 00000 n 
-0001820249 00000 n 
-0001820456 00000 n 
-0001820578 00000 n 
-0001820709 00000 n 
-0001820904 00000 n 
-0001820949 00000 n 
-0001833913 00000 n 
-0001834356 00000 n 
-0001834485 00000 n 
-0001834613 00000 n 
-0001834659 00000 n 
-0001834793 00000 n 
-0001834925 00000 n 
-0001834971 00000 n 
-0001835164 00000 n 
-0001835210 00000 n 
-0001835401 00000 n 
-0001836673 00000 n 
-0001837019 00000 n 
-0001837065 00000 n 
-0001839533 00000 n 
-0001839897 00000 n 
-0001839943 00000 n 
-0001840067 00000 n 
-0001843714 00000 n 
-0001844060 00000 n 
-0001844106 00000 n 
-0001845288 00000 n 
-0001845660 00000 n 
-0001845706 00000 n 
-0001845870 00000 n 
-0001846075 00000 n 
-0001851795 00000 n 
-0001852212 00000 n 
-0001852258 00000 n 
-0001852469 00000 n 
-0001852679 00000 n 
-0001852802 00000 n 
-0001852935 00000 n 
-0001853133 00000 n 
-0001853350 00000 n 
-0001869403 00000 n 
-0001869817 00000 n 
-0001869863 00000 n 
-0001869984 00000 n 
-0001870204 00000 n 
-0001870336 00000 n 
-0001870382 00000 n 
-0001870499 00000 n 
-0001877953 00000 n 
-0001878317 00000 n 
-0001878363 00000 n 
-0001878487 00000 n 
-0001881428 00000 n 
-0001881792 00000 n 
-0001881838 00000 n 
-0001882062 00000 n 
-0001887458 00000 n 
-0001887822 00000 n 
-0001887868 00000 n 
-0001887994 00000 n 
-0001888040 00000 n 
-0001895493 00000 n 
-0001895852 00000 n 
-0001895898 00000 n 
-0001895944 00000 n 
-0001907382 00000 n 
-0001907741 00000 n 
-0001923014 00000 n 
-0001923484 00000 n 
-0001923745 00000 n 
-0001924006 00000 n 
-0001924191 00000 n 
-0001924388 00000 n 
-0001924435 00000 n 
-0001924864 00000 n 
-0001925052 00000 n 
-0001925292 00000 n 
-0001925460 00000 n 
-0001925639 00000 n 
-0001925773 00000 n 
-0001925820 00000 n 
-0001926124 00000 n 
-0001926243 00000 n 
-0001935010 00000 n 
-0001935419 00000 n 
-0001935536 00000 n 
-0001935785 00000 n 
-0001935907 00000 n 
-0001935953 00000 n 
-0001936075 00000 n 
-0001936120 00000 n 
-0001936242 00000 n 
-0001936289 00000 n 
-0001936336 00000 n 
-0001975040 00000 n 
-0001975455 00000 n 
-0001975503 00000 n 
-0001975698 00000 n 
-0001975940 00000 n 
-0001988527 00000 n 
-0001988920 00000 n 
-0001989052 00000 n 
-0001989100 00000 n 
-0001989147 00000 n 
-0001989990 00000 n 
-0001990038 00000 n 
-0002031431 00000 n 
-0002031811 00000 n 
-0002031982 00000 n 
-0002038996 00000 n 
-0002039394 00000 n 
-0002039442 00000 n 
-0002039490 00000 n 
-0002039713 00000 n 
-0002039837 00000 n 
-0002039885 00000 n 
-0002040111 00000 n 
-0002045022 00000 n 
-0002045429 00000 n 
-0002045477 00000 n 
-0002045696 00000 n 
-0002045918 00000 n 
-0002046044 00000 n 
-0002046092 00000 n 
-0002046368 00000 n 
-0002047327 00000 n 
-0002047694 00000 n 
-0002047742 00000 n 
-0002048226 00000 n 
-0002048346 00000 n 
-0002054364 00000 n 
-0002054766 00000 n 
-0002054814 00000 n 
-0002055038 00000 n 
-0002055234 00000 n 
-0002064914 00000 n 
-0002065344 00000 n 
-0002065392 00000 n 
-0002065611 00000 n 
-0002065831 00000 n 
-0002125471 00000 n 
-0002125819 00000 n 
-0002185861 00000 n 
-0002186209 00000 n 
-0002197825 00000 n 
-0002198186 00000 n 
-0002209096 00000 n 
-0002209512 00000 n 
-0002209560 00000 n 
-0002209687 00000 n 
-0002209907 00000 n 
-0002210127 00000 n 
-0002210175 00000 n 
-0002210304 00000 n 
-0002210352 00000 n 
-0002210491 00000 n 
-0002214258 00000 n 
-0002214643 00000 n 
-0002214691 00000 n 
-0002214831 00000 n 
-0002214879 00000 n 
-0002215018 00000 n 
-0002215066 00000 n 
-0002215180 00000 n 
-0002217767 00000 n 
-0002218134 00000 n 
-0002218182 00000 n 
-0002218412 00000 n 
-0002229124 00000 n 
-0002229513 00000 n 
-0002229561 00000 n 
-0002229683 00000 n 
-0002229731 00000 n 
-0002229779 00000 n 
-0002229905 00000 n 
-0002243567 00000 n 
-0002243996 00000 n 
-0002244044 00000 n 
-0002244092 00000 n 
-0002244287 00000 n 
-0002244530 00000 n 
-0002244579 00000 n 
-0002254685 00000 n 
-0002255092 00000 n 
-0002255357 00000 n 
-0002255405 00000 n 
-0002255579 00000 n 
-0002255753 00000 n 
-0002255954 00000 n 
-0002256002 00000 n 
-0002265814 00000 n 
-0002266207 00000 n 
-0002266356 00000 n 
-0002266404 00000 n 
-0002275617 00000 n 
-0002275997 00000 n 
-0002276045 00000 n 
-0002276093 00000 n 
-0002276979 00000 n 
-0002277124 00000 n 
-0002287643 00000 n 
-0002288023 00000 n 
-0002288071 00000 n 
-0002288215 00000 n 
-0002288263 00000 n 
-0002298465 00000 n 
-0002298832 00000 n 
-0002298880 00000 n 
-0002299024 00000 n 
-0002299072 00000 n 
-0002299120 00000 n 
-0002299168 00000 n 
-0002299216 00000 n 
-0002319691 00000 n 
-0002320084 00000 n 
-0002320232 00000 n 
-0002320280 00000 n 
-0002333857 00000 n 
-0002334255 00000 n 
-0002334450 00000 n 
-0002334635 00000 n 
-0002334819 00000 n 
-0002336983 00000 n 
-0002337318 00000 n 
-0002351564 00000 n 
-0002351938 00000 n 
-0002351986 00000 n 
-0002352034 00000 n 
-0002352082 00000 n 
-0002352130 00000 n 
-0002369139 00000 n 
-0002369581 00000 n 
-0002369628 00000 n 
-0002369870 00000 n 
-0002370035 00000 n 
-0002370305 00000 n 
-0002370573 00000 n 
-0002370763 00000 n 
-0002379988 00000 n 
-0002380349 00000 n 
-0002380397 00000 n 
-0002380445 00000 n 
-0002380493 00000 n 
-0002381080 00000 n 
-0002392391 00000 n 
-0002392798 00000 n 
-0002392846 00000 n 
-0002392894 00000 n 
-0002392942 00000 n 
-0002392990 00000 n 
-0002393118 00000 n 
-0002400452 00000 n 
-0002400903 00000 n 
-0002400951 00000 n 
-0002401298 00000 n 
-0002401558 00000 n 
-0002401728 00000 n 
-0002401986 00000 n 
-0002402241 00000 n 
-0002402453 00000 n 
-0002402579 00000 n 
-0002402751 00000 n 
-0002417598 00000 n 
-0002418004 00000 n 
-0002418052 00000 n 
-0002418281 00000 n 
-0002428940 00000 n 
-0002429288 00000 n 
-0002434710 00000 n 
-0002435084 00000 n 
-0002446359 00000 n 
-0002446735 00000 n 
-0002446929 00000 n 
-0002447067 00000 n 
-0002453790 00000 n 
-0002454157 00000 n 
-0002454353 00000 n 
-0002461932 00000 n 
-0002462334 00000 n 
-0002462382 00000 n 
-0002462577 00000 n 
-0002462797 00000 n 
-0002467656 00000 n 
-0002468017 00000 n 
-0002468065 00000 n 
-0002479131 00000 n 
-0002479583 00000 n 
-0002479631 00000 n 
-0002479865 00000 n 
-0002480100 00000 n 
-0002480338 00000 n 
-0002480568 00000 n 
-0002480798 00000 n 
-0002481033 00000 n 
-0002481272 00000 n 
-0002481494 00000 n 
-0002481730 00000 n 
-0002483523 00000 n 
-0002483890 00000 n 
-0002483938 00000 n 
-0002484069 00000 n 
-0002488051 00000 n 
-0002488449 00000 n 
-0002488497 00000 n 
-0002488726 00000 n 
-0002488866 00000 n 
-0002489004 00000 n 
-0002492066 00000 n 
-0002492455 00000 n 
-0002492503 00000 n 
-0002492551 00000 n 
-0002493077 00000 n 
-0002493311 00000 n 
-0002493359 00000 n 
-0002493595 00000 n 
-0002521606 00000 n 
-0002521986 00000 n 
-0002522034 00000 n 
-0002522082 00000 n 
-0002522310 00000 n 
-0002547654 00000 n 
-0002548034 00000 n 
-0002548082 00000 n 
-0002548315 00000 n 
-0002569745 00000 n 
-0002570106 00000 n 
-0002570154 00000 n 
-0002570202 00000 n 
-0002613394 00000 n 
-0002613742 00000 n 
-0002637693 00000 n 
-0002638054 00000 n 
-0002638102 00000 n 
-0002675699 00000 n 
-0002676060 00000 n 
-0002676108 00000 n 
-0002695679 00000 n 
-0002696040 00000 n 
-0002696088 00000 n 
-0002709190 00000 n 
-0002709551 00000 n 
-0002709599 00000 n 
-0002710060 00000 n 
-0002712141 00000 n 
-0002712508 00000 n 
-0002712556 00000 n 
-0002712676 00000 n 
-0002749968 00000 n 
-0002750348 00000 n 
-0002750396 00000 n 
-0002750564 00000 n 
-0002755313 00000 n 
-0002755715 00000 n 
-0002755763 00000 n 
-0002755937 00000 n 
-0002756113 00000 n 
-0002764386 00000 n 
-0002764792 00000 n 
-0002764840 00000 n 
-0002765069 00000 n 
-0002772760 00000 n 
-0002773134 00000 n 
-0002773182 00000 n 
-0002784016 00000 n 
-0002784364 00000 n 
-0002796397 00000 n 
-0002796804 00000 n 
-0002796852 00000 n 
-0002797104 00000 n 
-0002797354 00000 n 
-0002797402 00000 n 
-0002797450 00000 n 
-0002797589 00000 n 
-0002797637 00000 n 
-0002797773 00000 n 
-0002817782 00000 n 
-0002818143 00000 n 
-0002818191 00000 n 
-0002834355 00000 n 
-0002834803 00000 n 
-0002834982 00000 n 
-0002835130 00000 n 
-0002835178 00000 n 
-0002835313 00000 n 
-0002835509 00000 n 
-0002835705 00000 n 
-0002851342 00000 n 
-0002851807 00000 n 
-0002851943 00000 n 
-0002852078 00000 n 
-0002852213 00000 n 
-0002852348 00000 n 
-0002852396 00000 n 
-0002852533 00000 n 
-0002852729 00000 n 
-0002868865 00000 n 
-0002869291 00000 n 
-0002869561 00000 n 
-0002869609 00000 n 
-0002869757 00000 n 
-0002869963 00000 n 
-0002884186 00000 n 
-0002884579 00000 n 
-0002884782 00000 n 
-0002884830 00000 n 
-0002896576 00000 n 
-0002896937 00000 n 
-0002902590 00000 n 
-0002902997 00000 n 
-0002903045 00000 n 
-0002903297 00000 n 
-0002903547 00000 n 
-0002903595 00000 n 
-0002903734 00000 n 
-0002903874 00000 n 
-0002903922 00000 n 
-0002903970 00000 n 
-0002904389 00000 n 
-0002919176 00000 n 
-0002919537 00000 n 
-0002919585 00000 n 
-0002934909 00000 n 
-0002935298 00000 n 
-0002935346 00000 n 
-0002935495 00000 n 
-0002935543 00000 n 
-0002935691 00000 n 
-0002948715 00000 n 
-0002949113 00000 n 
-0002949161 00000 n 
-0002949209 00000 n 
-0002949455 00000 n 
-0002949581 00000 n 
-0002949707 00000 n 
-0002949755 00000 n 
-0002953241 00000 n 
-0002953622 00000 n 
-0002953760 00000 n 
-0002967141 00000 n 
-0002967565 00000 n 
-0002967613 00000 n 
-0002967736 00000 n 
-0002967785 00000 n 
-0002967922 00000 n 
-0002968052 00000 n 
-0002979657 00000 n 
-0002980063 00000 n 
-0002980111 00000 n 
-0002980159 00000 n 
-0002980297 00000 n 
-0002980345 00000 n 
-0002980393 00000 n 
-0002980441 00000 n 
-0002996668 00000 n 
-0002997029 00000 n 
-0003019135 00000 n 
-0003019522 00000 n 
-0003032688 00000 n 
-0003033117 00000 n 
-0003033255 00000 n 
-0003033304 00000 n 
-0003033433 00000 n 
-0003033482 00000 n 
-0003033631 00000 n 
-0003033770 00000 n 
-0003033910 00000 n 
-0003044211 00000 n 
-0003044572 00000 n 
-0003060224 00000 n 
-0003060572 00000 n 
-0003074839 00000 n 
-0003075226 00000 n 
-0003075274 00000 n 
-0003086765 00000 n 
-0003087152 00000 n 
-0003092860 00000 n 
-0003093234 00000 n 
-0003129718 00000 n 
-0003130093 00000 n 
-0003161842 00000 n 
-0003162216 00000 n 
-0003195836 00000 n 
-0003196210 00000 n 
-0003196259 00000 n 
-0003212420 00000 n 
-0003212849 00000 n 
-0003213044 00000 n 
-0003213239 00000 n 
-0003225170 00000 n 
-0003225576 00000 n 
-0003225624 00000 n 
-0003225771 00000 n 
-0003225819 00000 n 
-0003250851 00000 n 
-0003251225 00000 n 
-0003271235 00000 n 
-0003271596 00000 n 
-0003286830 00000 n 
-0003287191 00000 n 
-0003319083 00000 n 
-0003319485 00000 n 
-0003319533 00000 n 
-0003319868 00000 n 
-0003320165 00000 n 
-0003353575 00000 n 
-0003353986 00000 n 
-0003354035 00000 n 
-0003354233 00000 n 
-0003354375 00000 n 
-0003354514 00000 n 
-0003354563 00000 n 
-0003369416 00000 n 
-0003369809 00000 n 
-0003370002 00000 n 
-0003370050 00000 n 
-0003370098 00000 n 
-0003370416 00000 n 
-0003381897 00000 n 
-0003382271 00000 n 
-0003382319 00000 n 
-0003398690 00000 n 
-0003399064 00000 n 
-0003411666 00000 n 
-0003412053 00000 n 
-0003412100 00000 n 
-0003424772 00000 n 
-0003425179 00000 n 
-0003425227 00000 n 
-0003425477 00000 n 
-0003434592 00000 n 
-0003434985 00000 n 
-0003435033 00000 n 
-0003435228 00000 n 
-0003451221 00000 n 
-0003451595 00000 n 
-0003451643 00000 n 
-0003468380 00000 n 
-0003468728 00000 n 
-0003484078 00000 n 
-0003484439 00000 n 
-0003484835 00000 n 
-0003485183 00000 n 
-0003485231 00000 n 
-0003496519 00000 n 
-0003496867 00000 n 
-0003496915 00000 n 
-0003496963 00000 n 
-0003497011 00000 n 
-0003501993 00000 n 
-0003502369 00000 n 
-0003502417 00000 n 
-0003502898 00000 n 
-0003503126 00000 n 
-0003503251 00000 n 
-0003514736 00000 n 
-0003515160 00000 n 
-0003515208 00000 n 
-0003515256 00000 n 
-0003515477 00000 n 
-0003515722 00000 n 
-0003515771 00000 n 
-0003515913 00000 n 
-0003535675 00000 n 
-0003536131 00000 n 
-0003536179 00000 n 
-0003536313 00000 n 
-0003536443 00000 n 
-0003536663 00000 n 
-0003536711 00000 n 
-0003536844 00000 n 
-0003536977 00000 n 
-0003537025 00000 n 
-0003537256 00000 n 
-0003537304 00000 n 
-0003537523 00000 n 
-0003537745 00000 n 
-0003562926 00000 n 
-0003563404 00000 n 
-0003563633 00000 n 
-0003563681 00000 n 
-0003563878 00000 n 
-0003564106 00000 n 
-0003564155 00000 n 
-0003564381 00000 n 
-0003564604 00000 n 
-0003564831 00000 n 
-0003565026 00000 n 
-0003565195 00000 n 
-0003565459 00000 n 
-0003565508 00000 n 
-0003584564 00000 n 
-0003584925 00000 n 
-0003584973 00000 n 
-0003590587 00000 n 
-0003590967 00000 n 
-0003591015 00000 n 
-0003591470 00000 n 
-0003591596 00000 n 
-0003611073 00000 n 
-0003611498 00000 n 
-0003611546 00000 n 
-0003611759 00000 n 
-0003611978 00000 n 
-0003612200 00000 n 
-0003612248 00000 n 
-0003612296 00000 n 
-0003612518 00000 n 
-0003612566 00000 n 
-0003612614 00000 n 
-0003612851 00000 n 
-0003613087 00000 n 
-0003637586 00000 n 
-0003637966 00000 n 
-0003638014 00000 n 
-0003638062 00000 n 
-0003638198 00000 n 
-0003656115 00000 n 
-0003656540 00000 n 
-0003656588 00000 n 
-0003656822 00000 n 
-0003657042 00000 n 
-0003657090 00000 n 
-0003657322 00000 n 
-0003657370 00000 n 
-0003657792 00000 n 
-0003658028 00000 n 
-0003658076 00000 n 
-0003658305 00000 n 
-0003658353 00000 n 
-0003658401 00000 n 
-0003658623 00000 n 
-0003684741 00000 n 
-0003685139 00000 n 
-0003685187 00000 n 
-0003685415 00000 n 
-0003685462 00000 n 
-0003685693 00000 n 
-0003685740 00000 n 
-0003685979 00000 n 
-0003736029 00000 n 
-0003736409 00000 n 
-0003736457 00000 n 
-0003736687 00000 n 
-0003738946 00000 n 
-0003739322 00000 n 
-0003739370 00000 n 
-0003739418 00000 n 
-0003739639 00000 n 
-0003739687 00000 n 
-0003739735 00000 n 
-0003740266 00000 n 
-0003740500 00000 n 
-0003752073 00000 n 
-0003752498 00000 n 
-0003752546 00000 n 
-0003752675 00000 n 
-0003752876 00000 n 
-0003752924 00000 n 
-0003752972 00000 n 
-0003753100 00000 n 
-0003753148 00000 n 
-0003753196 00000 n 
-0003753244 00000 n 
-0003753376 00000 n 
-0003753513 00000 n 
-0003753561 00000 n 
-0003753692 00000 n 
-0003762524 00000 n 
-0003762913 00000 n 
-0003762961 00000 n 
-0003763089 00000 n 
-0003763137 00000 n 
-0003763185 00000 n 
-0003763233 00000 n 
-0003763281 00000 n 
-0003763329 00000 n 
-0003763377 00000 n 
-0003764024 00000 n 
-0003764072 00000 n 
-0003764280 00000 n 
-0003764328 00000 n 
-0003777669 00000 n 
-0003778106 00000 n 
-0003778155 00000 n 
-0003778204 00000 n 
-0003778437 00000 n 
-0003778574 00000 n 
-0003778771 00000 n 
-0003778820 00000 n 
-0003797999 00000 n 
-0003798428 00000 n 
-0003798476 00000 n 
-0003798666 00000 n 
-0003798853 00000 n 
-0003813020 00000 n 
-0003813472 00000 n 
-0003813596 00000 n 
-0003813725 00000 n 
-0003813852 00000 n 
-0003813900 00000 n 
-0003814093 00000 n 
-0003814285 00000 n 
-0003814333 00000 n 
-0003814380 00000 n 
-0003814617 00000 n 
-0003836424 00000 n 
-0003836835 00000 n 
-0003837021 00000 n 
-0003837203 00000 n 
-0003837348 00000 n 
-0003853419 00000 n 
-0003853821 00000 n 
-0003854053 00000 n 
-0003854101 00000 n 
-0003854508 00000 n 
-0003854637 00000 n 
-0003869565 00000 n 
-0003869989 00000 n 
-0003870182 00000 n 
-0003870230 00000 n 
-0003870374 00000 n 
-0003870604 00000 n 
-0003886616 00000 n 
-0003887076 00000 n 
-0003887125 00000 n 
-0003887320 00000 n 
-0003887369 00000 n 
-0003887418 00000 n 
-0003887615 00000 n 
-0003887826 00000 n 
-0003888035 00000 n 
-0003888250 00000 n 
-0003888383 00000 n 
-0003888515 00000 n 
-0003907962 00000 n 
-0003908342 00000 n 
-0003908472 00000 n 
-0003919229 00000 n 
-0003919640 00000 n 
-0003919688 00000 n 
-0003919735 00000 n 
-0003919857 00000 n 
-0003920081 00000 n 
-0003920230 00000 n 
-0004185318 00000 n 
-0004187248 00000 n 
-0004195936 00000 n 
-0004196323 00000 n 
-0004196371 00000 n 
-0004215393 00000 n 
-0004215835 00000 n 
-0004215883 00000 n 
-0004215931 00000 n 
-0004216149 00000 n 
-0004216278 00000 n 
-0004216400 00000 n 
-0004216593 00000 n 
-0004216784 00000 n 
-0004232261 00000 n 
-0004232663 00000 n 
-0004232711 00000 n 
-0004232943 00000 n 
-0004232991 00000 n 
-0004233185 00000 n 
-0004244960 00000 n 
-0004245334 00000 n 
-0004245382 00000 n 
-0004245430 00000 n 
-0004259727 00000 n 
-0004260156 00000 n 
-0004260204 00000 n 
-0004260397 00000 n 
-0004260589 00000 n 
-0004260637 00000 n 
-0004260831 00000 n 
-0004260879 00000 n 
-0004261018 00000 n 
-0004261154 00000 n 
-0004261201 00000 n 
-0004261584 00000 n 
-0004274533 00000 n 
-0004274922 00000 n 
-0004274972 00000 n 
-0004275117 00000 n 
-0004275261 00000 n 
-0004287887 00000 n 
-0004288299 00000 n 
-0004288453 00000 n 
-0004288607 00000 n 
-0004288761 00000 n 
-0004288812 00000 n 
-0004303792 00000 n 
-0004304179 00000 n 
-0004318075 00000 n 
-0004318481 00000 n 
-0004318529 00000 n 
-0004318910 00000 n 
-0004318957 00000 n 
-0004319085 00000 n 
-0004319133 00000 n 
-0004330969 00000 n 
-0004331380 00000 n 
-0004331428 00000 n 
-0004331572 00000 n 
-0004331713 00000 n 
-0004331761 00000 n 
-0004331809 00000 n 
-0004331947 00000 n 
-0004344868 00000 n 
-0004345257 00000 n 
-0004345392 00000 n 
-0004345440 00000 n 
-0004345488 00000 n 
-0004345535 00000 n 
-0004345583 00000 n 
-0004345728 00000 n 
-0004354391 00000 n 
-0004354765 00000 n 
-0004354813 00000 n 
-0004450017 00000 n 
-0004455895 00000 n 
-0004456269 00000 n 
-0004478857 00000 n 
-0004479205 00000 n 
-0004491259 00000 n 
-0004491706 00000 n 
-0004491753 00000 n 
-0004491985 00000 n 
-0004492215 00000 n 
-0004492427 00000 n 
-0004492474 00000 n 
-0004492689 00000 n 
-0004492821 00000 n 
-0004492869 00000 n 
-0004493111 00000 n 
-0004493372 00000 n 
-0004518988 00000 n 
-0004519412 00000 n 
-0004519461 00000 n 
-0004519588 00000 n 
-0004519714 00000 n 
-0004519846 00000 n 
-0004533278 00000 n 
-0004533720 00000 n 
-0004533850 00000 n 
-0004533898 00000 n 
-0004534146 00000 n 
-0004534398 00000 n 
-0004534639 00000 n 
-0004534887 00000 n 
-0004534935 00000 n 
-0004547772 00000 n 
-0004548133 00000 n 
-0004548181 00000 n 
-0004548229 00000 n 
-0004548277 00000 n 
-0004548325 00000 n 
-0004560930 00000 n 
-0004561377 00000 n 
-0004561425 00000 n 
-0004561473 00000 n 
-0004561668 00000 n 
-0004561906 00000 n 
-0004562126 00000 n 
-0004562334 00000 n 
-0004562456 00000 n 
-0004562577 00000 n 
-0004562625 00000 n 
-0004562673 00000 n 
-0004562815 00000 n 
-0004572226 00000 n 
-0004572619 00000 n 
-0004572667 00000 n 
-0004572790 00000 n 
-0004572838 00000 n 
-0004572886 00000 n 
-0004590044 00000 n 
-0004590469 00000 n 
-0004590517 00000 n 
-0004590712 00000 n 
-0004590853 00000 n 
-0004590995 00000 n 
-0004606145 00000 n 
-0004606596 00000 n 
-0004606734 00000 n 
-0004606874 00000 n 
-0004606922 00000 n 
-0004606971 00000 n 
-0004607128 00000 n 
-0004607266 00000 n 
-0004607401 00000 n 
-0004607450 00000 n 
-0004607647 00000 n 
-0004621562 00000 n 
-0004621964 00000 n 
-0004622012 00000 n 
-0004622060 00000 n 
-0004622185 00000 n 
-0004622308 00000 n 
-0004638245 00000 n 
-0004638660 00000 n 
-0004638799 00000 n 
-0004638938 00000 n 
-0004638986 00000 n 
-0004655569 00000 n 
-0004655984 00000 n 
-0004656123 00000 n 
-0004656266 00000 n 
-0004656313 00000 n 
-0004669955 00000 n 
-0004670335 00000 n 
-0004670464 00000 n 
-0004683786 00000 n 
-0004684166 00000 n 
-0004684289 00000 n 
-0004696790 00000 n 
-0004697205 00000 n 
-0004697253 00000 n 
-0004697419 00000 n 
-0004697546 00000 n 
-0004710097 00000 n 
-0004710485 00000 n 
-0004710533 00000 n 
-0004711043 00000 n 
-0004711091 00000 n 
-0004722508 00000 n 
-0004722927 00000 n 
-0004722975 00000 n 
-0004723023 00000 n 
-0004723161 00000 n 
-0004723210 00000 n 
-0004723259 00000 n 
-0004753998 00000 n 
-0004754391 00000 n 
-0004754440 00000 n 
-0004754580 00000 n 
-0004780445 00000 n 
-0004780833 00000 n 
-0004780881 00000 n 
-0004780929 00000 n 
-0004780979 00000 n 
-0004792755 00000 n 
-0004793179 00000 n 
-0004793402 00000 n 
-0004793625 00000 n 
-0004793673 00000 n 
-0004793799 00000 n 
-0004793847 00000 n 
-0004794362 00000 n 
-0004794411 00000 n 
-0004824799 00000 n 
-0004825192 00000 n 
-0004825325 00000 n 
-0004825374 00000 n 
-0004825423 00000 n 
-0004840547 00000 n 
-0004840940 00000 n 
-0004840990 00000 n 
-0004841040 00000 n 
-0004841179 00000 n 
-0004843379 00000 n 
-0004843727 00000 n 
-0004855869 00000 n 
-0004856230 00000 n 
-0004856278 00000 n 
-0004856326 00000 n 
-0004856374 00000 n 
-0004856422 00000 n 
-0004856470 00000 n 
-0004856518 00000 n 
-0004857022 00000 n 
-0004865750 00000 n 
-0004866161 00000 n 
-0004866209 00000 n 
-0004866335 00000 n 
-0004866468 00000 n 
-0004866689 00000 n 
-0004866737 00000 n 
-0004869660 00000 n 
-0004870027 00000 n 
-0004870075 00000 n 
-0004870305 00000 n 
-0004870353 00000 n 
-0004870401 00000 n 
-0004882157 00000 n 
-0004882531 00000 n 
-0004882579 00000 n 
-0004882627 00000 n 
-0004882675 00000 n 
-0004892870 00000 n 
-0004893218 00000 n 
-0004955817 00000 n 
-0004957580 00000 n 
-0004963168 00000 n 
-0004963542 00000 n 
-0004963591 00000 n 
-0004964251 00000 n 
-0004975188 00000 n 
-0004975562 00000 n 
-0004975611 00000 n 
-0004975660 00000 n 
-0004975709 00000 n 
-0004990516 00000 n 
-0004990877 00000 n 
-0004990925 00000 n 
-0004990973 00000 n 
-0004991021 00000 n 
-0005003833 00000 n 
-0005004194 00000 n 
-0005004242 00000 n 
-0005004290 00000 n 
-0005004338 00000 n 
-0005004386 00000 n 
-0005020521 00000 n 
-0005020869 00000 n 
-0005035920 00000 n 
-0005036282 00000 n 
-0005053067 00000 n 
-0005053442 00000 n 
-0005053490 00000 n 
-0005075474 00000 n 
-0005075849 00000 n 
-0005075897 00000 n 
-0005075944 00000 n 
-0005076391 00000 n 
-0005076640 00000 n 
-0005076688 00000 n 
-0005077398 00000 n 
-0005077446 00000 n 
-0005077494 00000 n 
-0005077542 00000 n 
-0005101436 00000 n 
-0005101797 00000 n 
-0005101845 00000 n 
-0005108005 00000 n 
-0005108412 00000 n 
-0005108460 00000 n 
-0005108653 00000 n 
-0005108845 00000 n 
-0005109061 00000 n 
-0005109284 00000 n 
-0005125886 00000 n 
-0005126320 00000 n 
-0005126368 00000 n 
-0005126488 00000 n 
-0005126684 00000 n 
-0005126806 00000 n 
-0005126940 00000 n 
-0005126988 00000 n 
-0005138042 00000 n 
-0005138416 00000 n 
-0005138464 00000 n 
-0005138513 00000 n 
-0005138562 00000 n 
-0005143116 00000 n 
-0005143491 00000 n 
-0005143539 00000 n 
-0005144173 00000 n 
-0005157583 00000 n 
-0005157976 00000 n 
-0005158025 00000 n 
-0005158074 00000 n 
-0005158212 00000 n 
-0005161293 00000 n 
-0005161655 00000 n 
-0005162065 00000 n 
-0005162413 00000 n 
-0005162461 00000 n 
-0005169709 00000 n 
-0005170098 00000 n 
-0005170146 00000 n 
-0005170362 00000 n 
-0005170580 00000 n 
-0005218274 00000 n 
-0005218648 00000 n 
-0005218696 00000 n 
-0005230655 00000 n 
-0005231016 00000 n 
-0005231422 00000 n 
-0005231770 00000 n 
-0005231818 00000 n 
-0005238176 00000 n 
-0005238524 00000 n 
-0005238572 00000 n 
-0005242860 00000 n 
-0005243234 00000 n 
-0005243282 00000 n 
-0005248923 00000 n 
-0005249342 00000 n 
-0005249390 00000 n 
-0005249585 00000 n 
-0005249633 00000 n 
-0005258095 00000 n 
-0005263714 00000 n 
-0005263763 00000 n 
-0005270180 00000 n 
-0005280916 00000 n 
-0005283704 00000 n 
-0005284091 00000 n 
-0005284139 00000 n 
-0005296537 00000 n 
-0005305353 00000 n 
-0005317281 00000 n 
-0005317668 00000 n 
-0005317716 00000 n 
-0005317764 00000 n 
-0005317812 00000 n 
-0005348328 00000 n 
-0005348676 00000 n 
-0005361672 00000 n 
-0005362078 00000 n 
-0005362126 00000 n 
-0005362257 00000 n 
-0005362305 00000 n 
-0005362353 00000 n 
-0005363055 00000 n 
-0005363103 00000 n 
-0005376176 00000 n 
-0005376578 00000 n 
-0005376713 00000 n 
-0005376850 00000 n 
-0005376898 00000 n 
-0005376946 00000 n 
-0005376994 00000 n 
-0005390922 00000 n 
-0005391324 00000 n 
-0005391372 00000 n 
-0005391508 00000 n 
-0005391645 00000 n 
-0005391693 00000 n 
-0005391741 00000 n 
-0005405025 00000 n 
-0005405412 00000 n 
-0005405460 00000 n 
-0005405508 00000 n 
-0005405556 00000 n 
-0005405604 00000 n 
-0005416722 00000 n 
-0005417109 00000 n 
-0005417157 00000 n 
-0005417205 00000 n 
-0005417253 00000 n 
-0005423419 00000 n 
-0005423780 00000 n 
-0005435611 00000 n 
-0005435985 00000 n 
-0005436033 00000 n 
-0005436081 00000 n 
-0005436129 00000 n 
-0005436507 00000 n 
-0005436555 00000 n 
-0005436603 00000 n 
-0005436651 00000 n 
-0005449110 00000 n 
-0005449484 00000 n 
-0005449532 00000 n 
-0005449580 00000 n 
-0005449628 00000 n 
-0005450156 00000 n 
-0005450204 00000 n 
-0005450252 00000 n 
-0005450300 00000 n 
-0005450348 00000 n 
-0005460334 00000 n 
-0005460708 00000 n 
-0005460756 00000 n 
-0005460804 00000 n 
-0005460852 00000 n 
-0005460900 00000 n 
-0005460948 00000 n 
-0005460996 00000 n 
-0005461044 00000 n 
-0005461092 00000 n 
-0005473615 00000 n 
-0005474008 00000 n 
-0005474056 00000 n 
-0005474104 00000 n 
-0005474152 00000 n 
-0005474293 00000 n 
-0005484486 00000 n 
-0005484834 00000 n 
-0005484882 00000 n 
-0005484930 00000 n 
-0005484978 00000 n 
-0005485026 00000 n 
-0005485074 00000 n 
-0005485993 00000 n 
-0005486328 00000 n 
-0005493579 00000 n 
-0005493966 00000 n 
-0005494014 00000 n 
-0005515559 00000 n 
-0005516489 00000 n 
-0005529810 00000 n 
-0005530184 00000 n 
-0005531651 00000 n 
-0005531999 00000 n 
-0005536602 00000 n 
-0005536950 00000 n 
-0005536998 00000 n 
-0005537605 00000 n 
-0005542400 00000 n 
-0005542748 00000 n 
-0005542796 00000 n 
-0005549108 00000 n 
-0005549469 00000 n 
-0005549517 00000 n 
-0005564930 00000 n 
-0005565304 00000 n 
-0005565352 00000 n 
-0005565400 00000 n 
-0005565448 00000 n 
-0005570136 00000 n 
-0005570503 00000 n 
-0005570551 00000 n 
-0005570688 00000 n 
-0005583141 00000 n 
-0005583584 00000 n 
-0005583632 00000 n 
-0005583828 00000 n 
-0005584023 00000 n 
-0005584217 00000 n 
-0005584412 00000 n 
-0005584607 00000 n 
-0005584802 00000 n 
-0005584994 00000 n 
-0005585184 00000 n 
-0005586738 00000 n 
-0005587105 00000 n 
-0005587300 00000 n 
-0005589832 00000 n 
-0005590208 00000 n 
-0005590256 00000 n 
-0005590444 00000 n 
-0005590573 00000 n 
-0005627662 00000 n 
-0005628036 00000 n 
-0005628084 00000 n 
-0005671830 00000 n 
-0005672178 00000 n 
-0005673922 00000 n 
-0005674298 00000 n 
-0005674346 00000 n 
-0005674536 00000 n 
-0005674660 00000 n 
-0005687212 00000 n 
-0005687645 00000 n 
-0005687693 00000 n 
-0005687925 00000 n 
-0005688155 00000 n 
-0005688203 00000 n 
-0005688251 00000 n 
-0005688390 00000 n 
-0005688513 00000 n 
-0005688561 00000 n 
-0005719353 00000 n 
-0005719742 00000 n 
-0005745343 00000 n 
-0005745732 00000 n 
-0005758202 00000 n 
-0005758591 00000 n 
-0005771811 00000 n 
-0005772200 00000 n 
-0005806893 00000 n 
-0005807269 00000 n 
-0005807317 00000 n 
-0005854068 00000 n 
-0005854416 00000 n 
-0005905850 00000 n 
-0005906198 00000 n 
-0005984584 00000 n 
-0005984945 00000 n 
-0005984994 00000 n 
-0006103274 00000 n 
-0006103622 00000 n 
-0006178092 00000 n 
-0006178440 00000 n 
-0006179290 00000 n 
-0006179657 00000 n 
-0006179705 00000 n 
-0006179827 00000 n 
-0006181221 00000 n 
-0006181597 00000 n 
-0006181645 00000 n 
-0006181842 00000 n 
-0006182038 00000 n 
-0006198183 00000 n 
-0006198621 00000 n 
-0006198669 00000 n 
-0006198838 00000 n 
-0006199012 00000 n 
-0006199188 00000 n 
-0006199396 00000 n 
-0006199602 00000 n 
-0006199785 00000 n 
-0006244401 00000 n 
-0006244749 00000 n 
-0006282762 00000 n 
-0006283110 00000 n 
-0006291544 00000 n 
-0006291905 00000 n 
-0006291953 00000 n 
-0006292001 00000 n 
-0006292049 00000 n 
-0006292097 00000 n 
-0006296603 00000 n 
-0006296951 00000 n 
-0006303823 00000 n 
-0006304197 00000 n 
-0006304245 00000 n 
-0006304293 00000 n 
-0006304341 00000 n 
-0006311839 00000 n 
-0006312187 00000 n 
-0006316721 00000 n 
-0006317082 00000 n 
-0006320179 00000 n 
-0006320573 00000 n 
-0006320621 00000 n 
-0006320793 00000 n 
-0006320931 00000 n 
-0006321068 00000 n 
-0006321204 00000 n 
-0006330727 00000 n 
-0006331115 00000 n 
-0006331163 00000 n 
-0006331211 00000 n 
-0006331259 00000 n 
-0006348986 00000 n 
-0006349373 00000 n 
-0006349422 00000 n 
-0006349471 00000 n 
-0006359372 00000 n 
-0006359746 00000 n 
-0006359794 00000 n 
-0006359843 00000 n 
-0006360513 00000 n 
-0006387940 00000 n 
-0006388327 00000 n 
-0006388375 00000 n 
-0006388424 00000 n 
-0006398366 00000 n 
-0006398741 00000 n 
-0006404254 00000 n 
-0006404602 00000 n 
-0006408567 00000 n 
-0006408934 00000 n 
-0006408982 00000 n 
-0006409151 00000 n 
-0006417063 00000 n 
-0006417437 00000 n 
-0006417485 00000 n 
-0006459319 00000 n 
-0006459667 00000 n 
-0006461390 00000 n 
-0006461738 00000 n 
-0006467074 00000 n 
-0006467467 00000 n 
-0006467515 00000 n 
-0006467694 00000 n 
-0006474623 00000 n 
-0006474984 00000 n 
-0006479446 00000 n 
-0006479807 00000 n 
-0006479855 00000 n 
-0006489414 00000 n 
-0006489775 00000 n 
-0006498515 00000 n 
-0006498876 00000 n 
-0006507349 00000 n 
-0006507710 00000 n 
-0006517653 00000 n 
-0006518042 00000 n 
-0006518090 00000 n 
-0006518350 00000 n 
-0006518544 00000 n 
-0006518592 00000 n 
-0006518640 00000 n 
-0006527898 00000 n 
-0006528259 00000 n 
-0006528307 00000 n 
-0006541015 00000 n 
-0006541376 00000 n 
-0006541424 00000 n 
-0006541472 00000 n 
-0006541520 00000 n 
-0006552261 00000 n 
-0006552622 00000 n 
-0006556476 00000 n 
-0006556824 00000 n 
-0006566792 00000 n 
-0006567140 00000 n 
-0006580229 00000 n 
-0006580577 00000 n 
-0006587479 00000 n 
-0006587908 00000 n 
-0006587956 00000 n 
-0006588167 00000 n 
-0006588361 00000 n 
-0006588568 00000 n 
-0006588770 00000 n 
-0006588967 00000 n 
-0006601526 00000 n 
-0006601951 00000 n 
-0006601999 00000 n 
-0006602221 00000 n 
-0006602269 00000 n 
-0006602317 00000 n 
-0006602539 00000 n 
-0006602774 00000 n 
-0006603011 00000 n 
-0006603138 00000 n 
-0006603371 00000 n 
-0006616061 00000 n 
-0006616504 00000 n 
-0006616552 00000 n 
-0006616600 00000 n 
-0006617013 00000 n 
-0006617425 00000 n 
-0006617473 00000 n 
-0006617670 00000 n 
-0006617718 00000 n 
-0006617956 00000 n 
-0006618194 00000 n 
-0006618431 00000 n 
-0006618663 00000 n 
-0006618783 00000 n 
-0006626875 00000 n 
-0006627331 00000 n 
-0006627379 00000 n 
-0006627505 00000 n 
-0006627629 00000 n 
-0006627957 00000 n 
-0006628181 00000 n 
-0006628406 00000 n 
-0006628609 00000 n 
-0006628803 00000 n 
-0006628924 00000 n 
-0006641154 00000 n 
-0006641541 00000 n 
-0006641589 00000 n 
-0006641637 00000 n 
-0006656306 00000 n 
-0006656706 00000 n 
-0006656754 00000 n 
-0006656802 00000 n 
-0006656851 00000 n 
-0006665730 00000 n 
-0006666123 00000 n 
-0006666316 00000 n 
-0006666364 00000 n 
-0006714865 00000 n 
-0006715239 00000 n 
-0006715287 00000 n 
-0006744653 00000 n 
-0006745014 00000 n 
-0006745062 00000 n 
-0006745110 00000 n 
-0006745158 00000 n 
-0006767861 00000 n 
-0006768254 00000 n 
-0006768302 00000 n 
-0006768685 00000 n 
-0006768734 00000 n 
-0006768971 00000 n 
-0006807152 00000 n 
-0006807513 00000 n 
-0006840504 00000 n 
-0006840865 00000 n 
-0006840913 00000 n 
-0006876264 00000 n 
-0006876625 00000 n 
-0006903586 00000 n 
-0006903934 00000 n 
-0006941846 00000 n 
-0006942194 00000 n 
-0006953137 00000 n 
-0006953517 00000 n 
-0006953565 00000 n 
-0006954100 00000 n 
-0006954241 00000 n 
-0006993206 00000 n 
-0006993554 00000 n 
-0007009464 00000 n 
-0007009938 00000 n 
-0007009986 00000 n 
-0007010239 00000 n 
-0007010422 00000 n 
-0007010605 00000 n 
-0007010788 00000 n 
-0007010971 00000 n 
-0007011154 00000 n 
-0007011337 00000 n 
-0007011520 00000 n 
-0007011703 00000 n 
-0007011886 00000 n 
-0007012318 00000 n 
-0007012666 00000 n 
-0007012714 00000 n 
-0007014985 00000 n 
-0007015346 00000 n 
-0007015394 00000 n 
-0007015442 00000 n 
-0007015490 00000 n 
-0007015904 00000 n 
-0007015952 00000 n 
-0007016000 00000 n 
-0007025721 00000 n 
-0007026069 00000 n 
-0007026117 00000 n 
-0007026165 00000 n 
-0007026213 00000 n 
-0007026261 00000 n 
-0007034388 00000 n 
-0007034831 00000 n 
-0007034879 00000 n 
-0007035013 00000 n 
-0007035061 00000 n 
-0007035247 00000 n 
-0007035451 00000 n 
-0007035654 00000 n 
-0007035830 00000 n 
-0007036070 00000 n 
-0007036277 00000 n 
-0007036494 00000 n 
-0007049912 00000 n 
-0007050390 00000 n 
-0007050438 00000 n 
-0007050486 00000 n 
-0007050534 00000 n 
-0007050738 00000 n 
-0007050939 00000 n 
-0007051138 00000 n 
-0007051330 00000 n 
-0007051521 00000 n 
-0007051773 00000 n 
-0007052025 00000 n 
-0007052156 00000 n 
-0007052282 00000 n 
-0007065870 00000 n 
-0007066290 00000 n 
-0007066338 00000 n 
-0007066479 00000 n 
-0007066527 00000 n 
-0007066575 00000 n 
-0007066908 00000 n 
-0007066956 00000 n 
-0007067102 00000 n 
-0007067150 00000 n 
-0007067285 00000 n 
-0007067333 00000 n 
-0007067525 00000 n 
-0007080364 00000 n 
-0007080834 00000 n 
-0007081065 00000 n 
-0007081113 00000 n 
-0007081268 00000 n 
-0007081316 00000 n 
-0007081485 00000 n 
-0007081534 00000 n 
-0007081683 00000 n 
-0007081732 00000 n 
-0007081887 00000 n 
-0007081936 00000 n 
-0007082088 00000 n 
-0007082238 00000 n 
-0007082384 00000 n 
-0007082579 00000 n 
-0007082773 00000 n 
-0007082822 00000 n 
-0007083017 00000 n 
-0007106960 00000 n 
-0007107308 00000 n 
-0007108467 00000 n 
-0007108802 00000 n 
-0007109978 00000 n 
-0007110345 00000 n 
-0007110393 00000 n 
-0007110518 00000 n 
-0007121701 00000 n 
-0007122162 00000 n 
-0007122210 00000 n 
-0007122258 00000 n 
-0007122385 00000 n 
-0007122433 00000 n 
-0007122553 00000 n 
-0007122692 00000 n 
-0007122740 00000 n 
-0007122964 00000 n 
-0007123099 00000 n 
-0007123147 00000 n 
-0007123330 00000 n 
-0007123524 00000 n 
-0007123719 00000 n 
-0007123842 00000 n 
-0007124045 00000 n 
-0007124093 00000 n 
-0007140154 00000 n 
-0007140556 00000 n 
-0007140604 00000 n 
-0007140737 00000 n 
-0007140962 00000 n 
-0007141010 00000 n 
-0007158057 00000 n 
-0007158482 00000 n 
-0007158530 00000 n 
-0007158753 00000 n 
-0007158874 00000 n 
-0007158922 00000 n 
-0007159049 00000 n 
-0007159272 00000 n 
-0007159320 00000 n 
-0007159445 00000 n 
-0007159570 00000 n 
-0007159618 00000 n 
-0007160983 00000 n 
-0007161346 00000 n 
-0007161469 00000 n 
-0007161594 00000 n 
-0007181593 00000 n 
-0007181954 00000 n 
-0007182002 00000 n 
-0007182050 00000 n 
-0007217268 00000 n 
-0007217675 00000 n 
-0007217723 00000 n 
-0007217771 00000 n 
-0007217901 00000 n 
-0007217949 00000 n 
-0007218083 00000 n 
-0007218233 00000 n 
-0007218366 00000 n 
-0007229766 00000 n 
-0007230177 00000 n 
-0007230225 00000 n 
-0007230450 00000 n 
-0007230498 00000 n 
-0007230625 00000 n 
-0007230673 00000 n 
-0007231135 00000 n 
-0007231307 00000 n 
-0007231355 00000 n 
-0007231590 00000 n 
-0007231638 00000 n 
-0007234608 00000 n 
-0007234993 00000 n 
-0007235246 00000 n 
-0007235378 00000 n 
-0007235514 00000 n 
-0007247091 00000 n 
-0007247493 00000 n 
-0007247541 00000 n 
-0007248091 00000 n 
-0007248274 00000 n 
-0007248322 00000 n 
-0007248536 00000 n 
-0007248584 00000 n 
-0007248632 00000 n 
-0007248680 00000 n 
-0007273353 00000 n 
-0007273800 00000 n 
-0007273848 00000 n 
-0007273983 00000 n 
-0007274031 00000 n 
-0007274259 00000 n 
-0007274307 00000 n 
-0007274522 00000 n 
-0007274657 00000 n 
-0007274705 00000 n 
-0007274925 00000 n 
-0007275158 00000 n 
-0007275386 00000 n 
-0007289137 00000 n 
-0007289615 00000 n 
-0007289663 00000 n 
-0007290308 00000 n 
-0007290439 00000 n 
-0007290574 00000 n 
-0007290622 00000 n 
-0007290807 00000 n 
-0007291002 00000 n 
-0007291233 00000 n 
-0007291428 00000 n 
-0007291594 00000 n 
-0007291758 00000 n 
-0007291885 00000 n 
-0007291933 00000 n 
-0007291981 00000 n 
-0007292029 00000 n 
-0007292077 00000 n 
-0007292125 00000 n 
-0007303002 00000 n 
-0007303435 00000 n 
-0007303483 00000 n 
-0007303531 00000 n 
-0007303761 00000 n 
-0007303809 00000 n 
-0007304002 00000 n 
-0007304197 00000 n 
-0007304393 00000 n 
-0007311724 00000 n 
-0007312104 00000 n 
-0007312234 00000 n 
-0007316590 00000 n 
-0007316997 00000 n 
-0007317045 00000 n 
-0007317093 00000 n 
-0007317218 00000 n 
-0007317344 00000 n 
-0007317613 00000 n 
-0007317661 00000 n 
-0007317924 00000 n 
-0007332659 00000 n 
-0007333151 00000 n 
-0007333199 00000 n 
-0007333324 00000 n 
-0007333372 00000 n 
-0007333562 00000 n 
-0007333753 00000 n 
-0007333801 00000 n 
-0007333995 00000 n 
-0007334193 00000 n 
-0007334375 00000 n 
-0007334557 00000 n 
-0007334749 00000 n 
-0007335018 00000 n 
-0007335287 00000 n 
-0007335537 00000 n 
-0007335785 00000 n 
-0007343968 00000 n 
-0007344414 00000 n 
-0007344607 00000 n 
-0007344801 00000 n 
-0007344996 00000 n 
-0007345191 00000 n 
-0007345240 00000 n 
-0007347448 00000 n 
-0007347796 00000 n 
-0007347844 00000 n 
-0007353029 00000 n 
-0007353405 00000 n 
-0007353453 00000 n 
-0007353580 00000 n 
-0007353704 00000 n 
-0007354648 00000 n 
-0007355015 00000 n 
-0007355063 00000 n 
-0007355191 00000 n 
-0007355752 00000 n 
-0007356100 00000 n 
-0007356148 00000 n 
-0007363408 00000 n 
-0007363846 00000 n 
-0007363894 00000 n 
-0007364065 00000 n 
-0007364184 00000 n 
-0007364335 00000 n 
-0007364485 00000 n 
-0007364741 00000 n 
-0007364865 00000 n 
-0007374462 00000 n 
-0007374836 00000 n 
-0007374884 00000 n 
-0007374932 00000 n 
-0007374980 00000 n 
-0007375028 00000 n 
-0007375076 00000 n 
-0007375747 00000 n 
-0007375795 00000 n 
-0007399482 00000 n 
-0007399869 00000 n 
-0007399917 00000 n 
-0007494981 00000 n 
-0007495342 00000 n 
-0007525288 00000 n 
-0007525677 00000 n 
-0007525936 00000 n 
-0007526058 00000 n 
-0007532506 00000 n 
-0007532918 00000 n 
-0007532966 00000 n 
-0007533014 00000 n 
-0007533181 00000 n 
-0007533229 00000 n 
-0007533415 00000 n 
-0007533561 00000 n 
-0007533748 00000 n 
-0007533796 00000 n 
-0007533967 00000 n 
-0007534015 00000 n 
-0007534063 00000 n 
-0007534248 00000 n 
-0007539494 00000 n 
-0007539874 00000 n 
-0007539922 00000 n 
-0007539970 00000 n 
-0007540018 00000 n 
-0007540066 00000 n 
-0007540562 00000 n 
-0007540690 00000 n 
-0007540738 00000 n 
-0007591109 00000 n 
-0007591484 00000 n 
-0007591532 00000 n 
-0007591580 00000 n 
-0007591628 00000 n 
-0007603334 00000 n 
-0007603727 00000 n 
-0007603913 00000 n 
-0007603961 00000 n 
-0007633577 00000 n 
-0007633938 00000 n 
-0007633986 00000 n 
-0007714424 00000 n 
-0007714772 00000 n 
-0007781229 00000 n 
-0007781577 00000 n 
-0007833221 00000 n 
-0007833569 00000 n 
-0007887546 00000 n 
-0007887926 00000 n 
-0007887974 00000 n 
-0007888136 00000 n 
-0007888184 00000 n 
-0007902534 00000 n 
-0007902972 00000 n 
-0007903020 00000 n 
-0007903156 00000 n 
-0007903204 00000 n 
-0007903342 00000 n 
-0007903390 00000 n 
-0007903533 00000 n 
-0007903773 00000 n 
-0007903821 00000 n 
-0007903963 00000 n 
-0007904247 00000 n 
-0007904295 00000 n 
-0007918307 00000 n 
-0007918732 00000 n 
-0007918780 00000 n 
-0007918913 00000 n 
-0007919048 00000 n 
-0007919309 00000 n 
-0007919357 00000 n 
-0007919555 00000 n 
-0007919753 00000 n 
-0007919946 00000 n 
-0007963741 00000 n 
-0007964148 00000 n 
-0007964196 00000 n 
-0007964340 00000 n 
-0007964388 00000 n 
-0007964621 00000 n 
-0007964896 00000 n 
-0007965169 00000 n 
-0007975648 00000 n 
-0007976059 00000 n 
-0007976107 00000 n 
-0007976344 00000 n 
-0007976567 00000 n 
-0007976796 00000 n 
-0007990289 00000 n 
-0007990669 00000 n 
-0007990717 00000 n 
-0007990765 00000 n 
-0007990902 00000 n 
-0007995283 00000 n 
-0007995704 00000 n 
-0007995752 00000 n 
-0007996451 00000 n 
-0007996644 00000 n 
-0007996835 00000 n 
-0007997028 00000 n 
-0007997222 00000 n 
-0007997413 00000 n 
-0007997605 00000 n 
-0007997801 00000 n 
-0008017124 00000 n 
-0008017513 00000 n 
-0008017561 00000 n 
-0008017687 00000 n 
-0008017735 00000 n 
-0008017974 00000 n 
-0008018022 00000 n 
-0008033194 00000 n 
-0008033587 00000 n 
-0008033818 00000 n 
-0008033866 00000 n 
-0008033914 00000 n 
-0008033962 00000 n 
-0008034795 00000 n 
-0008035143 00000 n 
-0008038233 00000 n 
-0008038622 00000 n 
-0008038670 00000 n 
-0008038718 00000 n 
-0008038850 00000 n 
-0008038898 00000 n 
-0008038946 00000 n 
-0008039367 00000 n 
-0008039498 00000 n 
-0008070207 00000 n 
-0008070600 00000 n 
-0008070648 00000 n 
-0008070782 00000 n 
-0008070830 00000 n 
-0008070878 00000 n 
-0008070926 00000 n 
-0008070974 00000 n 
-0008081549 00000 n 
-0008081897 00000 n 
-0008102351 00000 n 
-0008102762 00000 n 
-0008102890 00000 n 
-0008102939 00000 n 
-0008102988 00000 n 
-0008103183 00000 n 
-0008103377 00000 n 
-0008103426 00000 n 
-0008125134 00000 n 
-0008125495 00000 n 
-0008125543 00000 n 
-0008125591 00000 n 
-0008126380 00000 n 
-0008126428 00000 n 
-0008126476 00000 n 
-0008126524 00000 n 
-0008171297 00000 n 
-0008171658 00000 n 
-0008182244 00000 n 
-0008182642 00000 n 
-0008182782 00000 n 
-0008182830 00000 n 
-0008182878 00000 n 
-0008183070 00000 n 
-0008183262 00000 n 
-0008183310 00000 n 
-0008183358 00000 n 
-0008185030 00000 n 
-0008185391 00000 n 
-0008185439 00000 n 
-0008191588 00000 n 
-0008191973 00000 n 
-0008192021 00000 n 
-0008192157 00000 n 
-0008192205 00000 n 
-0008192253 00000 n 
-0008192301 00000 n 
-0008192494 00000 n 
-0008192685 00000 n 
-0008192733 00000 n 
-0008200554 00000 n 
-0008200934 00000 n 
-0008201059 00000 n 
-0008201107 00000 n 
-0008207227 00000 n 
-0008207629 00000 n 
-0008207677 00000 n 
-0008208381 00000 n 
-0008208429 00000 n 
-0008208477 00000 n 
-0008208525 00000 n 
-0008208727 00000 n 
-0008208870 00000 n 
-0008225933 00000 n 
-0008226322 00000 n 
-0008226370 00000 n 
-0008226418 00000 n 
-0008226466 00000 n 
-0008226637 00000 n 
-0008226685 00000 n 
-0008226868 00000 n 
-0008229990 00000 n 
-0008230357 00000 n 
-0008230405 00000 n 
-0008230453 00000 n 
-0008230587 00000 n 
-0008243677 00000 n 
-0008244070 00000 n 
-0008244118 00000 n 
-0008244291 00000 n 
-0008256692 00000 n 
-0008257107 00000 n 
-0008257297 00000 n 
-0008257538 00000 n 
-0008259514 00000 n 
-0008259862 00000 n 
-0008282236 00000 n 
-0008282625 00000 n 
-0008282673 00000 n 
-0008282721 00000 n 
-0008282913 00000 n 
-0008283102 00000 n 
-0008284046 00000 n 
-0008284413 00000 n 
-0008284461 00000 n 
-0008284589 00000 n 
-0008298273 00000 n 
-0008298647 00000 n 
-0008298695 00000 n 
-0008298743 00000 n 
-0008306622 00000 n 
-0008307037 00000 n 
-0008307085 00000 n 
-0008307133 00000 n 
-0008307328 00000 n 
-0008307545 00000 n 
-0008331687 00000 n 
-0008332076 00000 n 
-0008332124 00000 n 
-0008332172 00000 n 
-0008332366 00000 n 
-0008332559 00000 n 
-0008332979 00000 n 
-0008333327 00000 n 
-0008333375 00000 n 
-0008335398 00000 n 
-0008335783 00000 n 
-0008335831 00000 n 
-0008335956 00000 n 
-0008336079 00000 n 
-0008336202 00000 n 
-0008336996 00000 n 
-0008337363 00000 n 
-0008337411 00000 n 
-0008337544 00000 n 
-0008346669 00000 n 
-0008347030 00000 n 
-0008347078 00000 n 
-0008347126 00000 n 
-0008347174 00000 n 
-0008347222 00000 n 
-0008347271 00000 n 
-0008347320 00000 n 
-0008347369 00000 n 
-0008360142 00000 n 
-0008360503 00000 n 
-0008360551 00000 n 
-0008360598 00000 n 
-0008360646 00000 n 
-0008369347 00000 n 
-0008369727 00000 n 
-0008369775 00000 n 
-0008370207 00000 n 
-0008370255 00000 n 
-0008370473 00000 n 
-0008374063 00000 n 
-0008374479 00000 n 
-0008374527 00000 n 
-0008375012 00000 n 
-0008375199 00000 n 
-0008375247 00000 n 
-0008375456 00000 n 
-0008375662 00000 n 
-0008375813 00000 n 
-0008375961 00000 n 
-0008378176 00000 n 
-0008378561 00000 n 
-0008378609 00000 n 
-0008378732 00000 n 
-0008378857 00000 n 
-0008378987 00000 n 
-0008393042 00000 n 
-0008393462 00000 n 
-0008393510 00000 n 
-0008393627 00000 n 
-0008393744 00000 n 
-0008393868 00000 n 
-0008393989 00000 n 
-0008405371 00000 n 
-0008405758 00000 n 
-0008405806 00000 n 
-0008427421 00000 n 
-0008427782 00000 n 
-0008427830 00000 n 
-0008437417 00000 n 
-0008437778 00000 n 
-0008437826 00000 n 
-0008437874 00000 n 
-0008437922 00000 n 
-0008437970 00000 n 
-0008438018 00000 n 
-0008449919 00000 n 
-0008450293 00000 n 
-0008450341 00000 n 
-0008450389 00000 n 
-0008450437 00000 n 
-0008463789 00000 n 
-0008464163 00000 n 
-0008464212 00000 n 
-0008474492 00000 n 
-0008474885 00000 n 
-0008475035 00000 n 
-0008475083 00000 n 
-0008475131 00000 n 
-0008487613 00000 n 
-0008488015 00000 n 
-0008488063 00000 n 
-0008488193 00000 n 
-0008488241 00000 n 
-0008488693 00000 n 
-0008488817 00000 n 
-0008488865 00000 n 
-0008488913 00000 n 
-0008488961 00000 n 
-0008493732 00000 n 
-0008494138 00000 n 
-0008494187 00000 n 
-0008494320 00000 n 
-0008494369 00000 n 
-0008504007 00000 n 
-0008504381 00000 n 
-0008525250 00000 n 
-0008525656 00000 n 
-0008525882 00000 n 
-0008525931 00000 n 
-0008536503 00000 n 
-0008536911 00000 n 
-0008537095 00000 n 
-0008537143 00000 n 
-0008537191 00000 n 
-0008537324 00000 n 
-0008537371 00000 n 
-0008546270 00000 n 
-0008546631 00000 n 
-0008546679 00000 n 
-0008556524 00000 n 
-0008556935 00000 n 
-0008556983 00000 n 
-0008557031 00000 n 
-0008557161 00000 n 
-0008557209 00000 n 
-0008557335 00000 n 
-0008557384 00000 n 
-0008557919 00000 n 
-0008558052 00000 n 
-0008558101 00000 n 
-0008563723 00000 n 
-0008564084 00000 n 
-0008564132 00000 n 
-0008576205 00000 n 
-0008576608 00000 n 
-0008576656 00000 n 
-0008577117 00000 n 
-0008577340 00000 n 
-0008577388 00000 n 
-0008577615 00000 n 
-0008588647 00000 n 
-0008589045 00000 n 
-0008589093 00000 n 
-0008589275 00000 n 
-0008589467 00000 n 
-0008589515 00000 n 
-0008589754 00000 n 
-0008589802 00000 n 
-0008598227 00000 n 
-0008598588 00000 n 
-0008598636 00000 n 
-0008598684 00000 n 
-0008604704 00000 n 
-0008605111 00000 n 
-0008605159 00000 n 
-0008605806 00000 n 
-0008605854 00000 n 
-0008606122 00000 n 
-0008606249 00000 n 
-0008606297 00000 n 
-0008606548 00000 n 
-0008606743 00000 n 
-0008618725 00000 n 
-0008619131 00000 n 
-0008619179 00000 n 
-0008619227 00000 n 
-0008619347 00000 n 
-0008639190 00000 n 
-0008639577 00000 n 
-0008639626 00000 n 
-0008639675 00000 n 
-0008652358 00000 n 
-0008652795 00000 n 
-0008653010 00000 n 
-0008653058 00000 n 
-0008653212 00000 n 
-0008653500 00000 n 
-0008653549 00000 n 
-0008653598 00000 n 
-0008667156 00000 n 
-0008667549 00000 n 
-0008667598 00000 n 
-0008667728 00000 n 
-0008667777 00000 n 
-0008681121 00000 n 
-0008681514 00000 n 
-0008681633 00000 n 
-0008681681 00000 n 
-0008683680 00000 n 
-0008684028 00000 n 
-0008697317 00000 n 
-0008697772 00000 n 
-0008697820 00000 n 
-0008698051 00000 n 
-0008698099 00000 n 
-0008698334 00000 n 
-0008698567 00000 n 
-0008698814 00000 n 
-0008699060 00000 n 
-0008699109 00000 n 
-0008699158 00000 n 
-0008715570 00000 n 
-0008715972 00000 n 
-0008716150 00000 n 
-0008716199 00000 n 
-0008716248 00000 n 
-0008722549 00000 n 
-0008722897 00000 n 
-0008722945 00000 n 
-0008730666 00000 n 
-0008731014 00000 n 
-0008732199 00000 n 
-0008732547 00000 n 
-0008743324 00000 n 
-0008743722 00000 n 
-0008743770 00000 n 
-0008743818 00000 n 
-0008743985 00000 n 
-0008744111 00000 n 
-0008744241 00000 n 
-0008744289 00000 n 
-0008744337 00000 n 
-0008744385 00000 n 
-0008779493 00000 n 
-0008779854 00000 n 
-0008779902 00000 n 
-0008779950 00000 n 
-0008779998 00000 n 
-0008937139 00000 n 
-0008940759 00000 n 
-0008941454 00000 n 
-0008941829 00000 n 
-0009035979 00000 n 
-0009122300 00000 n 
-0009123320 00000 n 
-0009123696 00000 n 
-0009194213 00000 n 
-0009205148 00000 n 
-0009205537 00000 n 
-0009205585 00000 n 
-0009205778 00000 n 
-0009205826 00000 n 
-0009206020 00000 n 
-0009217219 00000 n 
-0009217599 00000 n 
-0009217736 00000 n 
-0009270208 00000 n 
-0009275872 00000 n 
-0009276260 00000 n 
-0009276310 00000 n 
-0009285530 00000 n 
-0009285936 00000 n 
-0009286070 00000 n 
-0009286119 00000 n 
-0009298350 00000 n 
-0009298752 00000 n 
-0009298948 00000 n 
-0009299143 00000 n 
-0009299192 00000 n 
-0009305859 00000 n 
-0009306266 00000 n 
-0009306314 00000 n 
-0009462401 00000 n 
-0009464422 00000 n 
-0009464472 00000 n 
-0009465103 00000 n 
-0009465326 00000 n 
-0009480686 00000 n 
-0009481079 00000 n 
-0009481128 00000 n 
-0009481325 00000 n 
-0009481374 00000 n 
-0009495880 00000 n 
-0009496273 00000 n 
-0009496321 00000 n 
-0009496369 00000 n 
-0009496501 00000 n 
-0009508625 00000 n 
-0009508999 00000 n 
-0009509047 00000 n 
-0009509095 00000 n 
-0009509143 00000 n 
-0009518613 00000 n 
-0009518961 00000 n 
-0009527393 00000 n 
-0009527754 00000 n 
-0009527802 00000 n 
-0009538450 00000 n 
-0009538798 00000 n 
-0009555769 00000 n 
-0009556143 00000 n 
-0009556191 00000 n 
-0009556239 00000 n 
-0009569284 00000 n 
-0009569713 00000 n 
-0009569761 00000 n 
-0009569881 00000 n 
-0009570011 00000 n 
-0009570148 00000 n 
-0009570196 00000 n 
-0009570714 00000 n 
-0009570841 00000 n 
-0009570970 00000 n 
-0009571019 00000 n 
-0009578905 00000 n 
-0009579253 00000 n 
-0009588834 00000 n 
-0009589208 00000 n 
-0009589256 00000 n 
-0009589305 00000 n 
-0009603908 00000 n 
-0009604282 00000 n 
-0009604330 00000 n 
-0009618315 00000 n 
-0009618695 00000 n 
-0009618742 00000 n 
-0009618935 00000 n 
-0009629595 00000 n 
-0009629969 00000 n 
-0009630018 00000 n 
-0009646111 00000 n 
-0009646491 00000 n 
-0009646538 00000 n 
-0009646731 00000 n 
-0009648188 00000 n 
-0009648536 00000 n 
-0009656915 00000 n 
-0009657300 00000 n 
-0009657348 00000 n 
-0009657552 00000 n 
-0009657600 00000 n 
-0009657648 00000 n 
-0009657696 00000 n 
-0009657744 00000 n 
-0009658457 00000 n 
-0009658505 00000 n 
-0009658707 00000 n 
-0009658755 00000 n 
-0009658880 00000 n 
-0009660639 00000 n 
-0009661015 00000 n 
-0009661063 00000 n 
-0009661185 00000 n 
-0009661303 00000 n 
-0009673787 00000 n 
-0009674161 00000 n 
-0009674209 00000 n 
-0009674257 00000 n 
-0009674305 00000 n 
-0009683554 00000 n 
-0009683928 00000 n 
-0009683976 00000 n 
-0009684024 00000 n 
-0009684072 00000 n 
-0009684120 00000 n 
-0009694853 00000 n 
-0009695277 00000 n 
-0009695325 00000 n 
-0009695471 00000 n 
-0009695519 00000 n 
-0009695568 00000 n 
-0009695700 00000 n 
-0009695831 00000 n 
-0009707827 00000 n 
-0009708175 00000 n 
-0009712471 00000 n 
-0009712900 00000 n 
-0009712948 00000 n 
-0009713074 00000 n 
-0009713200 00000 n 
-0009713406 00000 n 
-0009713535 00000 n 
-0009713662 00000 n 
-0009726215 00000 n 
-0009726672 00000 n 
-0009726720 00000 n 
-0009726768 00000 n 
-0009726816 00000 n 
-0009726940 00000 n 
-0009727064 00000 n 
-0009727192 00000 n 
-0009727319 00000 n 
-0009727503 00000 n 
-0009727620 00000 n 
-0009727754 00000 n 
-0009727802 00000 n 
-0009727916 00000 n 
-0009728043 00000 n 
-0009728091 00000 n 
-0009728209 00000 n 
-0009728336 00000 n 
-0009746041 00000 n 
-0009746479 00000 n 
-0009746527 00000 n 
-0009746658 00000 n 
-0009746883 00000 n 
-0009747027 00000 n 
-0009747075 00000 n 
-0009747123 00000 n 
-0009747255 00000 n 
-0009747405 00000 n 
-0009747560 00000 n 
-0009759431 00000 n 
-0009759820 00000 n 
-0009759868 00000 n 
-0009760573 00000 n 
-0009760621 00000 n 
-0009760763 00000 n 
-0009760897 00000 n 
-0009773807 00000 n 
-0009774268 00000 n 
-0009774395 00000 n 
-0009774443 00000 n 
-0009774491 00000 n 
-0009774631 00000 n 
-0009774776 00000 n 
-0009774900 00000 n 
-0009774948 00000 n 
-0009775074 00000 n 
-0009775222 00000 n 
-0009775357 00000 n 
-0009775405 00000 n 
-0009775548 00000 n 
-0009775696 00000 n 
-0009775828 00000 n 
-0009789679 00000 n 
-0009790040 00000 n 
-0009790088 00000 n 
-0009806291 00000 n 
-0009806707 00000 n 
-0009806755 00000 n 
-0009806969 00000 n 
-0009807180 00000 n 
-0009838217 00000 n 
-0009838604 00000 n 
-0009848956 00000 n 
-0009849330 00000 n 
-0009849378 00000 n 
-0009849426 00000 n 
-0009849474 00000 n 
-0009849522 00000 n 
-0009849570 00000 n 
-0009860443 00000 n 
-0009860832 00000 n 
-0009860880 00000 n 
-0009861102 00000 n 
-0009861323 00000 n 
-0009871778 00000 n 
-0009872145 00000 n 
-0009872396 00000 n 
-0009881807 00000 n 
-0009882155 00000 n 
-0009894841 00000 n 
-0009895189 00000 n 
-0009906103 00000 n 
-0009906465 00000 n 
-0009907813 00000 n 
-0009908161 00000 n 
-0009908209 00000 n 
-0009919926 00000 n 
-0009920378 00000 n 
-0009920426 00000 n 
-0009920742 00000 n 
-0009920922 00000 n 
-0009921049 00000 n 
-0009921169 00000 n 
-0009921217 00000 n 
-0009921403 00000 n 
-0009921451 00000 n 
-0009922008 00000 n 
-0009922183 00000 n 
-0009922355 00000 n 
-0009922403 00000 n 
-0009922571 00000 n 
-0009922619 00000 n 
-0009922941 00000 n 
-0009923138 00000 n 
-0009935633 00000 n 
-0009936007 00000 n 
-0009936055 00000 n 
-0009946065 00000 n 
-0009946480 00000 n 
-0009946528 00000 n 
-0009946842 00000 n 
-0009947155 00000 n 
-0009949525 00000 n 
-0009949910 00000 n 
-0009949958 00000 n 
-0009950150 00000 n 
-0009950344 00000 n 
-0009950513 00000 n 
-0009964510 00000 n 
-0009964926 00000 n 
-0009964974 00000 n 
-0009965022 00000 n 
-0009965490 00000 n 
-0009965538 00000 n 
-0009965672 00000 n 
-0009965720 00000 n 
-0009965768 00000 n 
-0009965942 00000 n 
-0009975943 00000 n 
-0009976317 00000 n 
-0009976365 00000 n 
-0009976412 00000 n 
-0009976460 00000 n 
-0009986035 00000 n 
-0009986479 00000 n 
-0009986527 00000 n 
-0009986752 00000 n 
-0009986976 00000 n 
-0009987024 00000 n 
-0009987165 00000 n 
-0009987214 00000 n 
-0009987340 00000 n 
-0009987538 00000 n 
-0009997543 00000 n 
-0009997958 00000 n 
-0009998006 00000 n 
-0009998054 00000 n 
-0009998174 00000 n 
-0009998223 00000 n 
-0009998272 00000 n 
-0009998398 00000 n 
-0009998447 00000 n 
-0009998496 00000 n 
-0010009991 00000 n 
-0010010393 00000 n 
-0010010441 00000 n 
-0010010574 00000 n 
-0010010703 00000 n 
-0010010751 00000 n 
-0010011313 00000 n 
-0010011361 00000 n 
-0010024544 00000 n 
-0010024950 00000 n 
-0010024997 00000 n 
-0010025045 00000 n 
-0010025171 00000 n 
-0010027426 00000 n 
-0010027815 00000 n 
-0010027863 00000 n 
-0010028381 00000 n 
-0010028573 00000 n 
-0010028762 00000 n 
-0010030251 00000 n 
-0010030644 00000 n 
-0010030692 00000 n 
-0010030815 00000 n 
-0010030864 00000 n 
-0010048041 00000 n 
-0010048415 00000 n 
-0010048464 00000 n 
-0010065460 00000 n 
-0010065911 00000 n 
-0010066046 00000 n 
-0010066180 00000 n 
-0010066314 00000 n 
-0010066503 00000 n 
-0010066677 00000 n 
-0010066872 00000 n 
-0010078456 00000 n 
-0010078845 00000 n 
-0010079057 00000 n 
-0010079260 00000 n 
-0010093559 00000 n 
-0010093970 00000 n 
-0010094105 00000 n 
-0010094240 00000 n 
-0010094375 00000 n 
-0010108239 00000 n 
-0010108650 00000 n 
-0010108828 00000 n 
-0010109025 00000 n 
-0010109227 00000 n 
-0010122818 00000 n 
-0010123305 00000 n 
-0010123495 00000 n 
-0010123684 00000 n 
-0010123878 00000 n 
-0010124071 00000 n 
-0010124262 00000 n 
-0010124455 00000 n 
-0010124647 00000 n 
-0010124695 00000 n 
-0010124830 00000 n 
-0010124965 00000 n 
-0010125100 00000 n 
-0010127608 00000 n 
-0010127988 00000 n 
-0010128118 00000 n 
-0010131686 00000 n 
-0010132071 00000 n 
-0010132119 00000 n 
-0010132324 00000 n 
-0010132506 00000 n 
-0010132686 00000 n 
-0010134763 00000 n 
-0010135139 00000 n 
-0010135187 00000 n 
-0010135386 00000 n 
-0010135537 00000 n 
-0010138089 00000 n 
-0010138483 00000 n 
-0010138531 00000 n 
-0010138700 00000 n 
-0010138748 00000 n 
-0010138902 00000 n 
-0010138950 00000 n 
-0010139119 00000 n 
-0010139249 00000 n 
-0010152122 00000 n 
-0010152529 00000 n 
-0010152577 00000 n 
-0010152702 00000 n 
-0010152750 00000 n 
-0010152882 00000 n 
-0010152930 00000 n 
-0010153062 00000 n 
-0010153276 00000 n 
-0010164113 00000 n 
-0010164493 00000 n 
-0010164541 00000 n 
-0010164678 00000 n 
-0010164726 00000 n 
-0010165288 00000 n 
-0010189644 00000 n 
-0010190077 00000 n 
-0010190270 00000 n 
-0010190404 00000 n 
-0010190460 00000 n 
-0010190644 00000 n 
-0010190700 00000 n 
-0010190883 00000 n 
-0010190939 00000 n 
-0010203779 00000 n 
-0010204172 00000 n 
-0010204227 00000 n 
-0010204361 00000 n 
-0010204409 00000 n 
-0010204457 00000 n 
-0010204505 00000 n 
-0010204553 00000 n 
-0010204601 00000 n 
-0010216338 00000 n 
-0010216712 00000 n 
-0010216760 00000 n 
-0010216808 00000 n 
-0010216856 00000 n 
-0010231320 00000 n 
-0010231694 00000 n 
-0010231742 00000 n 
-0010231790 00000 n 
-0010231838 00000 n 
-0010232358 00000 n 
-0010239698 00000 n 
-0010240046 00000 n 
-0010240094 00000 n 
-0010240142 00000 n 
-0010240190 00000 n 
-0010240238 00000 n 
-0010265913 00000 n 
-0010266274 00000 n 
-0010266322 00000 n 
-0010266851 00000 n 
-0010283466 00000 n 
-0010283842 00000 n 
-0010299470 00000 n 
-0010299863 00000 n 
-0010299911 00000 n 
-0010300111 00000 n 
-0010300159 00000 n 
-0010300207 00000 n 
-0010317094 00000 n 
-0010317514 00000 n 
-0010317709 00000 n 
-0010317892 00000 n 
-0010317940 00000 n 
-0010318123 00000 n 
-0010318305 00000 n 
-0010330485 00000 n 
-0010330833 00000 n 
-0010342987 00000 n 
-0010343380 00000 n 
-0010343429 00000 n 
-0010343478 00000 n 
-0010343614 00000 n 
-0010343663 00000 n 
-0010359494 00000 n 
-0010359855 00000 n 
-0010369832 00000 n 
-0010370219 00000 n 
-0010370267 00000 n 
-0010370315 00000 n 
-0010370363 00000 n 
-0010370411 00000 n 
-0010392797 00000 n 
-0010393186 00000 n 
-0010393234 00000 n 
-0010393436 00000 n 
-0010393575 00000 n 
-0010393623 00000 n 
-0010394315 00000 n 
-0010394363 00000 n 
-0010419779 00000 n 
-0010420140 00000 n 
-0010420188 00000 n 
-0010420236 00000 n 
-0010420284 00000 n 
-0010420332 00000 n 
-0010431591 00000 n 
-0010432006 00000 n 
-0010432054 00000 n 
-0010432102 00000 n 
-0010432150 00000 n 
-0010432198 00000 n 
-0010432247 00000 n 
-0010432475 00000 n 
-0010432702 00000 n 
-0010442280 00000 n 
-0010442686 00000 n 
-0010442734 00000 n 
-0010442782 00000 n 
-0010443372 00000 n 
-0010443567 00000 n 
-0010443615 00000 n 
-0010455679 00000 n 
-0010456072 00000 n 
-0010456120 00000 n 
-0010456331 00000 n 
-0010456379 00000 n 
-0010456929 00000 n 
-0010456977 00000 n 
-0010457025 00000 n 
-0010457073 00000 n 
-0010457667 00000 n 
-0010457843 00000 n 
-0010472750 00000 n 
-0010473179 00000 n 
-0010473227 00000 n 
-0010473788 00000 n 
-0010473973 00000 n 
-0010474145 00000 n 
-0010474325 00000 n 
-0010474503 00000 n 
-0010474551 00000 n 
-0010474689 00000 n 
-0010489349 00000 n 
-0010489816 00000 n 
-0010489944 00000 n 
-0010490163 00000 n 
-0010490212 00000 n 
-0010490338 00000 n 
-0010490468 00000 n 
-0010490517 00000 n 
-0010490566 00000 n 
-0010491058 00000 n 
-0010491228 00000 n 
-0010491398 00000 n 
-0010504554 00000 n 
-0010505007 00000 n 
-0010505197 00000 n 
-0010505245 00000 n 
-0010505293 00000 n 
-0010505488 00000 n 
-0010505674 00000 n 
-0010505722 00000 n 
-0010505954 00000 n 
-0010506002 00000 n 
-0010506193 00000 n 
-0010506388 00000 n 
-0010506436 00000 n 
-0010521548 00000 n 
-0010521954 00000 n 
-0010522145 00000 n 
-0010530513 00000 n 
-0010530861 00000 n 
-0010542043 00000 n 
-0010542423 00000 n 
-0010542471 00000 n 
-0010542519 00000 n 
-0010542701 00000 n 
-0010553638 00000 n 
-0010554063 00000 n 
-0010554111 00000 n 
-0010554319 00000 n 
-0010554525 00000 n 
-0010554573 00000 n 
-0010554621 00000 n 
-0010554803 00000 n 
-0010554984 00000 n 
-0010555032 00000 n 
-0010555080 00000 n 
-0010555230 00000 n 
-0010555278 00000 n 
-0010555326 00000 n 
-0010555586 00000 n 
-0010568943 00000 n 
-0010569336 00000 n 
-0010569384 00000 n 
-0010569432 00000 n 
-0010570085 00000 n 
-0010570281 00000 n 
-0010572196 00000 n 
-0010572581 00000 n 
-0010572629 00000 n 
-0010572863 00000 n 
-0010573096 00000 n 
-0010573224 00000 n 
-0010598923 00000 n 
-0010599303 00000 n 
-0010599351 00000 n 
-0010599512 00000 n 
-0010624967 00000 n 
-0010625334 00000 n 
-0010625533 00000 n 
-0010633175 00000 n 
-0010633564 00000 n 
-0010633612 00000 n 
-0010633792 00000 n 
-0010633918 00000 n 
-0010678269 00000 n 
-0010678617 00000 n 
-0010710790 00000 n 
-0010711170 00000 n 
-0010711218 00000 n 
-0010711388 00000 n 
-0010756094 00000 n 
-0010756442 00000 n 
-0010763165 00000 n 
-0010763558 00000 n 
-0010763606 00000 n 
-0010763732 00000 n 
-0010811109 00000 n 
-0010811489 00000 n 
-0010811743 00000 n 
-0010812149 00000 n 
-0010812497 00000 n 
-0010812545 00000 n 
-0010828095 00000 n 
-0010828515 00000 n 
-0010828563 00000 n 
-0010828756 00000 n 
-0010828882 00000 n 
-0010828997 00000 n 
-0010829128 00000 n 
-0010829176 00000 n 
-0010852037 00000 n 
-0010852385 00000 n 
-0010871276 00000 n 
-0010871682 00000 n 
-0010871730 00000 n 
-0010871875 00000 n 
-0010890423 00000 n 
-0010890829 00000 n 
-0010891052 00000 n 
-0010899065 00000 n 
-0010899485 00000 n 
-0010899533 00000 n 
-0010899963 00000 n 
-0010900177 00000 n 
-0010900390 00000 n 
-0010900584 00000 n 
-0010900812 00000 n 
-0010920743 00000 n 
-0010921145 00000 n 
-0010921193 00000 n 
-0010921776 00000 n 
-0010921965 00000 n 
-0010922160 00000 n 
-0010922354 00000 n 
-0010922402 00000 n 
-0010942558 00000 n 
-0010942951 00000 n 
-0010942999 00000 n 
-0010943244 00000 n 
-0010974162 00000 n 
-0010974536 00000 n 
-0010974584 00000 n 
-0010993771 00000 n 
-0010994132 00000 n 
-0011003094 00000 n 
-0011003468 00000 n 
-0011003515 00000 n 
-0011003562 00000 n 
-0011013755 00000 n 
-0011014116 00000 n 
-0011014164 00000 n 
-0011014212 00000 n 
-0011014260 00000 n 
-0011017175 00000 n 
-0011017555 00000 n 
-0011017603 00000 n 
-0011017799 00000 n 
-0011017847 00000 n 
-0011018235 00000 n 
-0011018583 00000 n 
-0011018631 00000 n 
-0011026953 00000 n 
-0011027364 00000 n 
-0011027412 00000 n 
-0011027600 00000 n 
-0011027649 00000 n 
-0011027836 00000 n 
-0011027885 00000 n 
-0011028070 00000 n 
-0011028119 00000 n 
-0011035780 00000 n 
-0011036173 00000 n 
-0011036221 00000 n 
-0011036269 00000 n 
-0011036455 00000 n 
-0011039825 00000 n 
-0011040205 00000 n 
-0011040253 00000 n 
-0011040438 00000 n 
-0011040824 00000 n 
-0011041172 00000 n 
-0011041220 00000 n 
-0011053144 00000 n 
-0011053555 00000 n 
-0011053603 00000 n 
-0011053780 00000 n 
-0011053947 00000 n 
-0011054072 00000 n 
-0011054120 00000 n 
-0011054168 00000 n 
-0011067834 00000 n 
-0011068242 00000 n 
-0011068290 00000 n 
-0011068805 00000 n 
-0011069026 00000 n 
-0011089199 00000 n 
-0011089610 00000 n 
-0011089753 00000 n 
-0011089800 00000 n 
-0011089848 00000 n 
-0011089896 00000 n 
-0011090065 00000 n 
-0011090250 00000 n 
-0011115839 00000 n 
-0011116237 00000 n 
-0011116444 00000 n 
-0011116652 00000 n 
-0011116859 00000 n 
-0011134993 00000 n 
-0011135354 00000 n 
-0011150044 00000 n 
-0011150451 00000 n 
-0011150656 00000 n 
-0011150861 00000 n 
-0011151064 00000 n 
-0011151268 00000 n 
-0011159642 00000 n 
-0011160003 00000 n 
-0011168354 00000 n 
-0011168752 00000 n 
-0011168960 00000 n 
-0011169170 00000 n 
-0011169379 00000 n 
-0011183596 00000 n 
-0011183998 00000 n 
-0011184194 00000 n 
-0011184390 00000 n 
-0011201294 00000 n 
-0011201701 00000 n 
-0011201751 00000 n 
-0011202138 00000 n 
-0011202271 00000 n 
-0011202321 00000 n 
-0011212904 00000 n 
-0011213278 00000 n 
-0011213326 00000 n 
-0011213374 00000 n 
-0011224465 00000 n 
-0011224903 00000 n 
-0011224951 00000 n 
-0011224999 00000 n 
-0011225353 00000 n 
-0011225481 00000 n 
-0011225667 00000 n 
-0011225838 00000 n 
-0011225963 00000 n 
-0011226090 00000 n 
-0011226218 00000 n 
-0011226266 00000 n 
-0011238194 00000 n 
-0011238677 00000 n 
-0011238726 00000 n 
-0011238854 00000 n 
-0011238903 00000 n 
-0011239029 00000 n 
-0011239159 00000 n 
-0011239208 00000 n 
-0011239333 00000 n 
-0011239457 00000 n 
-0011239591 00000 n 
-0011239725 00000 n 
-0011239860 00000 n 
-0011239983 00000 n 
-0011240119 00000 n 
-0011240249 00000 n 
-0011245822 00000 n 
-0011246252 00000 n 
-0011246300 00000 n 
-0011246423 00000 n 
-0011246471 00000 n 
-0011246597 00000 n 
-0011246717 00000 n 
-0011246765 00000 n 
-0011246891 00000 n 
-0011247013 00000 n 
-0011247061 00000 n 
-0011247182 00000 n 
-0011247306 00000 n 
-0011247354 00000 n 
-0011247478 00000 n 
-0011258640 00000 n 
-0011259014 00000 n 
-0011259062 00000 n 
-0011259110 00000 n 
-0011259158 00000 n 
-0011272402 00000 n 
-0011272776 00000 n 
-0011272824 00000 n 
-0011286124 00000 n 
-0011286485 00000 n 
-0011286533 00000 n 
-0011298021 00000 n 
-0011298395 00000 n 
-0011298443 00000 n 
-0011298491 00000 n 
-0011298539 00000 n 
-0011298587 00000 n 
-0011306583 00000 n 
-0011306944 00000 n 
-0011306992 00000 n 
-0011307041 00000 n 
-0011307090 00000 n 
-0011328252 00000 n 
-0011328626 00000 n 
-0011366028 00000 n 
-0011366376 00000 n 
-0011403898 00000 n 
-0011404246 00000 n 
-0011436813 00000 n 
-0011437161 00000 n 
-0011466328 00000 n 
-0011466676 00000 n 
-0011477882 00000 n 
-0011478320 00000 n 
-0011478368 00000 n 
-0011478517 00000 n 
-0011478714 00000 n 
-0011478849 00000 n 
-0011478986 00000 n 
-0011479125 00000 n 
-0011479267 00000 n 
-0011484651 00000 n 
-0011485053 00000 n 
-0011525710 00000 n 
-0011553473 00000 n 
-0011561337 00000 n 
-0011561712 00000 n 
-0011607753 00000 n 
-0011607802 00000 n 
-0011626015 00000 n 
-0011626421 00000 n 
-0011626604 00000 n 
-0011626651 00000 n 
-0011660218 00000 n 
-0011660592 00000 n 
-0011692201 00000 n 
-0011692612 00000 n 
-0011692805 00000 n 
-0011692996 00000 n 
-0011693207 00000 n 
-0011693255 00000 n 
-0011693303 00000 n 
-0011708080 00000 n 
-0011708496 00000 n 
-0011708691 00000 n 
-0011708827 00000 n 
-0011708876 00000 n 
-0011709084 00000 n 
-0011709226 00000 n 
-0011709275 00000 n 
-0011709411 00000 n 
-0011709460 00000 n 
-0011721320 00000 n 
-0011721735 00000 n 
-0011721867 00000 n 
-0011722009 00000 n 
-0011722057 00000 n 
-0011722106 00000 n 
-0011722655 00000 n 
-0011722852 00000 n 
-0011722901 00000 n 
-0011735313 00000 n 
-0011735687 00000 n 
-0011735736 00000 n 
-0011746753 00000 n 
-0011747127 00000 n 
-0011747176 00000 n 
-0011750040 00000 n 
-0011750401 00000 n 
-0011751728 00000 n 
-0011752104 00000 n 
-0011752152 00000 n 
-0011752200 00000 n 
-0011752369 00000 n 
-0011752417 00000 n 
-0011752599 00000 n 
-0011755557 00000 n 
-0011755951 00000 n 
-0011755999 00000 n 
-0011756184 00000 n 
-0011756377 00000 n 
-0011756554 00000 n 
-0011756730 00000 n 
-0011763931 00000 n 
-0011764306 00000 n 
-0011764354 00000 n 
-0011764402 00000 n 
-0011764450 00000 n 
-0011790337 00000 n 
-0011794900 00000 n 
-0011794949 00000 n 
-0011794998 00000 n 
-0011795047 00000 n 
-0011802755 00000 n 
-0011803103 00000 n 
-0011803151 00000 n 
-0011849919 00000 n 
-0011856557 00000 n 
-0011856932 00000 n 
-0011856981 00000 n 
-0011866910 00000 n 
-0011867271 00000 n 
-0011867319 00000 n 
-0011867367 00000 n 
-0011879912 00000 n 
-0011880273 00000 n 
-0011880321 00000 n 
-0011880819 00000 n 
-0011894573 00000 n 
-0011894934 00000 n 
-0011894982 00000 n 
-0011895559 00000 n 
-0011895607 00000 n 
-0011895655 00000 n 
-0011913586 00000 n 
-0011913934 00000 n 
-0011913982 00000 n 
-0011926449 00000 n 
-0011926901 00000 n 
-0011926949 00000 n 
-0011926997 00000 n 
-0011927137 00000 n 
-0011927264 00000 n 
-0011927414 00000 n 
-0011927551 00000 n 
-0011927599 00000 n 
-0011927731 00000 n 
-0011927778 00000 n 
-0011927905 00000 n 
-0011928030 00000 n 
-0011928078 00000 n 
-0011928206 00000 n 
-0011928420 00000 n 
-0011938697 00000 n 
-0011939077 00000 n 
-0011939125 00000 n 
-0011939560 00000 n 
-0011939696 00000 n 
-0011947001 00000 n 
-0011947498 00000 n 
-0011947546 00000 n 
-0011947594 00000 n 
-0011947765 00000 n 
-0011947937 00000 n 
-0011948193 00000 n 
-0011948242 00000 n 
-0011948491 00000 n 
-0011948719 00000 n 
-0011948963 00000 n 
-0011949012 00000 n 
-0011949205 00000 n 
-0011949415 00000 n 
-0011949628 00000 n 
-0011949677 00000 n 
-0011949869 00000 n 
-0011950102 00000 n 
-0011950287 00000 n 
-0011950336 00000 n 
-0011950529 00000 n 
-0011950578 00000 n 
-0011950772 00000 n 
-0011952756 00000 n 
-0011953123 00000 n 
-0011953171 00000 n 
-0011953365 00000 n 
-0011956741 00000 n 
-0011957117 00000 n 
-0011957165 00000 n 
-0011957213 00000 n 
-0011957397 00000 n 
-0011957445 00000 n 
-0011957639 00000 n 
-0011961253 00000 n 
-0011961692 00000 n 
-0011961740 00000 n 
-0011966000 00000 n 
-0011966530 00000 n 
-0011966724 00000 n 
-0011966908 00000 n 
-0011967101 00000 n 
-0011967298 00000 n 
-0011967493 00000 n 
-0011967679 00000 n 
-0011991259 00000 n 
-0011991688 00000 n 
-0011991736 00000 n 
-0011991917 00000 n 
-0011992112 00000 n 
-0011992307 00000 n 
-0011992355 00000 n 
-0011992534 00000 n 
-0011992781 00000 n 
-0012001417 00000 n 
-0012001797 00000 n 
-0012001980 00000 n 
-0012031845 00000 n 
-0012032219 00000 n 
-0012032267 00000 n 
-0012052993 00000 n 
-0012053354 00000 n 
-0012053402 00000 n 
-0012063452 00000 n 
-0012063873 00000 n 
-0012063921 00000 n 
-0012064495 00000 n 
-0012064689 00000 n 
-0012064910 00000 n 
-0012065127 00000 n 
-0012065343 00000 n 
-0012065574 00000 n 
-0012065622 00000 n 
-0012065670 00000 n 
-0012065718 00000 n 
-0012065949 00000 n 
-0012066207 00000 n 
-0012066255 00000 n 
-0012066303 00000 n 
-0012080210 00000 n 
-0012080597 00000 n 
-0012080646 00000 n 
-0012080695 00000 n 
-0012080744 00000 n 
-0012088716 00000 n 
-0012089077 00000 n 
-0012089126 00000 n 
-0012089175 00000 n 
-0012089224 00000 n 
-0012089273 00000 n 
-0012089322 00000 n 
-0012101073 00000 n 
-0012101460 00000 n 
-0012101509 00000 n 
-0012101628 00000 n 
-0012101750 00000 n 
-0012101879 00000 n 
-0012102009 00000 n 
-0012102134 00000 n 
-0012102261 00000 n 
-0012102384 00000 n 
-0012102509 00000 n 
-0012102636 00000 n 
-0012102763 00000 n 
-0012102896 00000 n 
-0012103029 00000 n 
-0012103161 00000 n 
-0012103294 00000 n 
-0012103422 00000 n 
-0012103551 00000 n 
-0012103672 00000 n 
-0012103793 00000 n 
-0012103919 00000 n 
-0012104045 00000 n 
-0012104173 00000 n 
-0012104301 00000 n 
-0012104439 00000 n 
-0012104577 00000 n 
-0012104701 00000 n 
-0012104825 00000 n 
-0012104948 00000 n 
-0012105071 00000 n 
-0012105201 00000 n 
-0012105331 00000 n 
-0012105452 00000 n 
-0012105574 00000 n 
-0012105701 00000 n 
-0012105828 00000 n 
-0012105946 00000 n 
-0012106066 00000 n 
-0012106189 00000 n 
-0012106313 00000 n 
-0012106468 00000 n 
-0012106624 00000 n 
-0012106763 00000 n 
-0012106904 00000 n 
-0012107063 00000 n 
-0012107223 00000 n 
-0012107367 00000 n 
-0012107513 00000 n 
-0012107639 00000 n 
-0012107766 00000 n 
-0012107888 00000 n 
-0012108012 00000 n 
-0012108140 00000 n 
-0012108270 00000 n 
-0012108397 00000 n 
-0012108525 00000 n 
-0012108647 00000 n 
-0012108771 00000 n 
-0012108890 00000 n 
-0012109010 00000 n 
-0012109123 00000 n 
-0012109241 00000 n 
-0012109367 00000 n 
-0012109494 00000 n 
-0012109612 00000 n 
-0012109732 00000 n 
-0012109867 00000 n 
-0012110003 00000 n 
-0012110125 00000 n 
-0012110248 00000 n 
-0012110369 00000 n 
-0012110491 00000 n 
-0012110622 00000 n 
-0012110755 00000 n 
-0012110872 00000 n 
-0012110990 00000 n 
-0012111106 00000 n 
-0012111223 00000 n 
-0012111343 00000 n 
-0012111464 00000 n 
-0012111592 00000 n 
-0012111722 00000 n 
-0012111863 00000 n 
-0012112005 00000 n 
-0012112152 00000 n 
-0012112301 00000 n 
-0012112428 00000 n 
-0012112556 00000 n 
-0012112683 00000 n 
-0012112811 00000 n 
-0012112940 00000 n 
-0012113070 00000 n 
-0012113203 00000 n 
-0012113337 00000 n 
-0012113463 00000 n 
-0012113590 00000 n 
-0012113707 00000 n 
-0012113825 00000 n 
-0012113954 00000 n 
-0012114084 00000 n 
-0012114214 00000 n 
-0012114346 00000 n 
-0012114471 00000 n 
-0012114597 00000 n 
-0012114729 00000 n 
-0012114862 00000 n 
-0012114986 00000 n 
-0012115111 00000 n 
-0012115237 00000 n 
-0012115365 00000 n 
-0012115488 00000 n 
-0012115612 00000 n 
-0012115751 00000 n 
-0012115891 00000 n 
-0012116026 00000 n 
-0012116163 00000 n 
-0012116305 00000 n 
-0012116448 00000 n 
-0012116612 00000 n 
-0012116777 00000 n 
-0012116933 00000 n 
-0012117090 00000 n 
-0012117222 00000 n 
-0012117355 00000 n 
-0012117477 00000 n 
-0012117600 00000 n 
-0012117730 00000 n 
-0012117862 00000 n 
-0012117999 00000 n 
-0012118137 00000 n 
-0012118267 00000 n 
-0012118398 00000 n 
-0012118520 00000 n 
-0012118644 00000 n 
-0012118766 00000 n 
-0012118889 00000 n 
-0012119041 00000 n 
-0012119194 00000 n 
-0012119330 00000 n 
-0012119467 00000 n 
-0012119607 00000 n 
-0012119748 00000 n 
-0012119894 00000 n 
-0012120041 00000 n 
-0012120192 00000 n 
-0012120344 00000 n 
-0012120486 00000 n 
-0012120629 00000 n 
-0012120766 00000 n 
-0012120904 00000 n 
-0012121029 00000 n 
-0012121156 00000 n 
-001

<TRUNCATED>

[14/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html
index aeebaec..f338c1a 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.727">ThriftServerRunner.HBaseHandler</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.729">ThriftServerRunner.HBaseHandler</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <div class="block">The HBaseHandler is a glue object that connects Thrift RPC calls to the
@@ -721,7 +721,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>protected&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.728">conf</a></pre>
+<pre>protected&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.730">conf</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -730,7 +730,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>protected static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.729">LOG</a></pre>
+<pre>protected static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.731">LOG</a></pre>
 </li>
 </ul>
 <a name="nextScannerId">
@@ -739,7 +739,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>nextScannerId</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.732">nextScannerId</a></pre>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.734">nextScannerId</a></pre>
 </li>
 </ul>
 <a name="scannerMap">
@@ -748,7 +748,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerMap</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://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="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ResultScannerWrapper</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.733">scannerMap</a></pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="https://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="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ResultScannerWrapper</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.735">scannerMap</a></pre>
 </li>
 </ul>
 <a name="metrics">
@@ -757,7 +757,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>metrics</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.html" title="class in org.apache.hadoop.hbase.thrift">ThriftMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.734">metrics</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.html" title="class in org.apache.hadoop.hbase.thrift">ThriftMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.736">metrics</a></pre>
 </li>
 </ul>
 <a name="connectionCache">
@@ -766,7 +766,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>connectionCache</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/ConnectionCache.html" title="class in org.apache.hadoop.hbase.util">ConnectionCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.736">connectionCache</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/ConnectionCache.html" title="class in org.apache.hadoop.hbase.util">ConnectionCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.738">connectionCache</a></pre>
 </li>
 </ul>
 <a name="coalescer">
@@ -775,7 +775,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>coalescer</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/thrift/IncrementCoalescer.html" title="class in org.apache.hadoop.hbase.thrift">IncrementCoalescer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.737">coalescer</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/thrift/IncrementCoalescer.html" title="class in org.apache.hadoop.hbase.thrift">IncrementCoalescer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.739">coalescer</a></pre>
 </li>
 </ul>
 <a name="CLEANUP_INTERVAL">
@@ -784,7 +784,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>CLEANUP_INTERVAL</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.739">CLEANUP_INTERVAL</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.741">CLEANUP_INTERVAL</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.HBaseHandler.CLEANUP_INTERVAL">Constant Field Values</a></dd>
@@ -797,7 +797,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MAX_IDLETIME</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.740">MAX_IDLETIME</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.742">MAX_IDLETIME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.HBaseHandler.MAX_IDLETIME">Constant Field Values</a></dd>
@@ -818,7 +818,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HBaseHandler</h4>
-<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.810">HBaseHandler</a>(org.apache.hadoop.conf.Configuration&nbsp;c,
+<pre>protected&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.812">HBaseHandler</a>(org.apache.hadoop.conf.Configuration&nbsp;c,
                        <a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a>&nbsp;userProvider)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -841,7 +841,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getAllColumns</h4>
-<pre>byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.748">getAllColumns</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table)
+<pre>byte[][]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.750">getAllColumns</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Returns a list of all the column families for a given Table.</div>
 <dl>
@@ -858,7 +858,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTable</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.766">getTable</a>(byte[]&nbsp;tableName)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.768">getTable</a>(byte[]&nbsp;tableName)
                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Creates and returns a Table instance from a given table name.</div>
 <dl>
@@ -877,7 +877,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTable</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.771">getTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.773">getTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -891,7 +891,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>addScanner</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.782">addScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;scanner,
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.784">addScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;scanner,
                          boolean&nbsp;sortColumns)</pre>
 <div class="block">Assigns a unique ID to the scanner and adds the mapping to an internal
  hash-map.</div>
@@ -909,7 +909,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ResultScannerWrapper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.795">getScanner</a>(int&nbsp;id)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ResultScannerWrapper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.797">getScanner</a>(int&nbsp;id)</pre>
 <div class="block">Returns the scanner associated with the specified ID.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -925,7 +925,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>removeScanner</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ResultScannerWrapper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.806">removeScanner</a>(int&nbsp;id)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ResultScannerWrapper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.808">removeScanner</a>(int&nbsp;id)</pre>
 <div class="block">Removes the scanner associated with the specified ID from the internal
  id-&gt;scanner hash-map.</div>
 <dl>
@@ -942,7 +942,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getAdmin</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.825">getAdmin</a>()
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.827">getAdmin</a>()
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Obtain HBaseAdmin. Creates the instance if it is not already created.</div>
 <dl>
@@ -957,7 +957,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>setEffectiveUser</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.829">setEffectiveUser</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;effectiveUser)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.831">setEffectiveUser</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;effectiveUser)</pre>
 </li>
 </ul>
 <a name="enableTable-java.nio.ByteBuffer-">
@@ -966,7 +966,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.834">enableTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.836">enableTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
                  throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
 <div class="block">Brings a table on-line (enables it)</div>
@@ -986,7 +986,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>disableTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.844">disableTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.846">disableTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
                   throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
 <div class="block">Disables a table (takes it off-line) If it is being served, the master
@@ -1007,7 +1007,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>isTableEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.854">isTableEnabled</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.856">isTableEnabled</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
                        throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1027,7 +1027,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.866">compact</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableNameOrRegionName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.868">compact</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableNameOrRegionName)
              throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1043,7 +1043,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompact</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.883">majorCompact</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableNameOrRegionName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.885">majorCompact</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableNameOrRegionName)
                   throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1059,7 +1059,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableNames</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.898">getTableNames</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.900">getTableNames</a>()
                                throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
 <div class="block">List all the userspace tables.</div>
@@ -1079,7 +1079,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableRegions</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRegionInfo&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.916">getTableRegions</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRegionInfo&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.918">getTableRegions</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
                                                                            throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
 <div class="block">List the regions associated with a table.</div>
@@ -1101,7 +1101,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.946">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.948">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;column,
                                                                 <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1130,7 +1130,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.967">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.969">get</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                    byte[]&nbsp;family,
                                                                    byte[]&nbsp;qualifier,
@@ -1153,7 +1153,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getVer</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.993">getVer</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.995">getVer</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;column,
                                                                    int&nbsp;numVersions,
@@ -1184,7 +1184,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getVer</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1014">getVer</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1016">getVer</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                    byte[]&nbsp;family,
                                                                    byte[]&nbsp;qualifier,
@@ -1209,7 +1209,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getVerTs</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1039">getVerTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1041">getVerTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;column,
                                                                      long&nbsp;timestamp,
@@ -1243,7 +1243,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getVerTs</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1059">getVerTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TCell&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1061">getVerTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                         byte[]&nbsp;family,
                                                                         byte[]&nbsp;qualifier,
@@ -1268,7 +1268,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRow</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1086">getRow</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1088">getRow</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
                                                                  throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
@@ -1295,7 +1295,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowWithColumns</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1094">getRowWithColumns</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1096">getRowWithColumns</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
                                                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1324,7 +1324,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowTs</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1104">getRowTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1106">getRowTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                           long&nbsp;timestamp,
                                                                           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1353,7 +1353,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowWithColumnsTs</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1111">getRowWithColumnsTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1113">getRowWithColumnsTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                                                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
                                                                                      long&nbsp;timestamp,
@@ -1383,7 +1383,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRows</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1147">getRows</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1149">getRows</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;rows,
                                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
                                                                   throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
@@ -1410,7 +1410,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowsWithColumns</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1157">getRowsWithColumns</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1159">getRowsWithColumns</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;rows,
                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
                                                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1439,7 +1439,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowsTs</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1167">getRowsTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1169">getRowsTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;rows,
                                                                            long&nbsp;timestamp,
                                                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1468,7 +1468,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowsWithColumnsTs</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1176">getRowsWithColumnsTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1178">getRowsWithColumnsTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                                                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;rows,
                                                                                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
                                                                                       long&nbsp;timestamp,
@@ -1498,7 +1498,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteAll</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1216">deleteAll</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1218">deleteAll</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;column,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1524,7 +1524,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteAllTs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1225">deleteAllTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1227">deleteAllTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;column,
                         long&nbsp;timestamp,
@@ -1553,7 +1553,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteAllRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1251">deleteAllRow</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1253">deleteAllRow</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
                   throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
@@ -1577,7 +1577,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteAllRowTs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1258">deleteAllRowTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1260">deleteAllRowTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                            long&nbsp;timestamp,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1604,7 +1604,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1276">createTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;in_tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1278">createTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;in_tableName,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor&gt;&nbsp;columnFamilies)
                  throws org.apache.hadoop.hbase.thrift.generated.IOError,
                         org.apache.hadoop.hbase.thrift.generated.IllegalArgument,
@@ -1633,7 +1633,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableName</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1299">getTableName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer)</pre>
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1301">getTableName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;buffer)</pre>
 </li>
 </ul>
 <a name="deleteTable-java.nio.ByteBuffer-">
@@ -1642,7 +1642,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1304">deleteTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;in_tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1306">deleteTable</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;in_tableName)
                  throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
 <div class="block">Deletes a table</div>
@@ -1663,7 +1663,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>mutateRow</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1321">mutateRow</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1323">mutateRow</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.Mutation&gt;&nbsp;mutations,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1694,7 +1694,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>mutateRowTs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1329">mutateRowTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1331">mutateRowTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.Mutation&gt;&nbsp;mutations,
                         long&nbsp;timestamp,
@@ -1727,7 +1727,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>mutateRows</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1393">mutateRows</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1395">mutateRows</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.BatchMutation&gt;&nbsp;rowBatches,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
                 throws org.apache.hadoop.hbase.thrift.generated.IOError,
@@ -1758,7 +1758,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>mutateRowsTs</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1400">mutateRowsTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1402">mutateRowsTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.BatchMutation&gt;&nbsp;rowBatches,
                          long&nbsp;timestamp,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1791,7 +1791,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>atomicIncrement</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1480">atomicIncrement</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1482">atomicIncrement</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;column,
                             long&nbsp;amount)
@@ -1821,7 +1821,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>atomicIncrement</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1490">atomicIncrement</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1492">atomicIncrement</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;row,
                                byte[]&nbsp;family,
                                byte[]&nbsp;qualifier,
@@ -1843,7 +1843,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerClose</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1507">scannerClose</a>(int&nbsp;id)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1509">scannerClose</a>(int&nbsp;id)
                   throws org.apache.hadoop.hbase.thrift.generated.IOError,
                          org.apache.hadoop.hbase.thrift.generated.IllegalArgument</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
@@ -1865,7 +1865,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerGetList</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1520">scannerGetList</a>(int&nbsp;id,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1522">scannerGetList</a>(int&nbsp;id,
                                                                                 int&nbsp;nbRows)
                                                                          throws org.apache.hadoop.hbase.thrift.generated.IllegalArgument,
                                                                                 org.apache.hadoop.hbase.thrift.generated.IOError</pre>
@@ -1894,7 +1894,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerGet</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1544">scannerGet</a>(int&nbsp;id)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.thrift.generated.TRowResult&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1546">scannerGet</a>(int&nbsp;id)
                                                                      throws org.apache.hadoop.hbase.thrift.generated.IllegalArgument,
                                                                             org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
@@ -1921,7 +1921,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerOpenWithScan</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1549">scannerOpenWithScan</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1551">scannerOpenWithScan</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                org.apache.hadoop.hbase.thrift.generated.TScan&nbsp;tScan,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
                         throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
@@ -1946,7 +1946,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerOpen</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1604">scannerOpen</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1606">scannerOpen</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;startRow,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -1978,7 +1978,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerOpenWithStop</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1633">scannerOpenWithStop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1635">scannerOpenWithStop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;startRow,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;stopRow,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
@@ -2016,7 +2016,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerOpenWithPrefix</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1663">scannerOpenWithPrefix</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1665">scannerOpenWithPrefix</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;startAndPrefix,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)
@@ -2047,7 +2047,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerOpenTs</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1697">scannerOpenTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1699">scannerOpenTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;startRow,
                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
                          long&nbsp;timestamp,
@@ -2084,7 +2084,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>scannerOpenWithStopTs</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1727">scannerOpenWithStopTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1729">scannerOpenWithStopTs</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;startRow,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;stopRow,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;columns,
@@ -2125,7 +2125,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getColumnDescriptors</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1759">getColumnDescriptors</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1761">getColumnDescriptors</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;tableName)
                                                                                                throws org.apache.hadoop.hbase.thrift.generated.IOError,
                                                                                                       org.apache.thrift.TException</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
@@ -2149,7 +2149,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>closeTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1782">closeTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1784">closeTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Table.html" title="interface in org.apache.hadoop.hbase.client">Table</a>&nbsp;table)
                  throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2163,7 +2163,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.thrift.generated.TRegionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1794">getRegionInfo</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;searchRow)
+<pre>public&nbsp;org.apache.hadoop.hbase.thrift.generated.TRegionInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1796">getRegionInfo</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&nbsp;searchRow)
                                                                    throws org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</code></span></div>
 <div class="block">Get the regininfo for the specified row. It scans
@@ -2186,7 +2186,7 @@ implements org.apache.hadoop.hbase.thrift.generated.Hbase.Iface</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getReverseScanResult</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1832">getReverseScanResult</a>(byte[]&nbsp;tableName,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html#line.1834">getReverseScanResult</a>(byte[]

<TRUNCATED>

[20/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 8de5bcb..d82af18 100644
--- a/book.html
+++ b/book.html
@@ -37824,7 +37824,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-04-20 14:29:52 UTC
+Last updated 2018-04-21 14:29:50 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index 2c97d08..111fe28 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -306,7 +306,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 


[04/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html b/devapidocs/src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html
index 6bdffeb..3dbb30a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html
@@ -136,76 +136,89 @@
 <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>    // else create a store file link. The link file does not exists on filesystem though.<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    HFileLink link = HFileLink.build(conf, regionInfoForFs.getTable(),<a name="line.131"></a>
-<span class="sourceLineNo">132</span>            regionInfoForFs.getEncodedName(), familyName, path.getName());<a name="line.132"></a>
-<span class="sourceLineNo">133</span><a name="line.133"></a>
-<span class="sourceLineNo">134</span>    if (StoreFileInfo.isReference(path)) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      Reference reference = Reference.read(fs, path);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      return new StoreFileInfo(conf, fs, link.getFileStatus(fs), reference);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    }<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    return new StoreFileInfo(conf, fs, link.getFileStatus(fs), link);<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>   * Create replication peer for replicating to region replicas if needed.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   * @param conf configuration to use<a name="line.144"></a>
-<span class="sourceLineNo">145</span>   * @throws IOException<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   */<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  public static void setupRegionReplicaReplication(Configuration conf) throws IOException {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    if (!isRegionReplicaReplicationEnabled(conf)) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      return;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    Admin admin = ConnectionFactory.createConnection(conf).getAdmin();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    ReplicationPeerConfig peerConfig = null;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    try {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      peerConfig = admin.getReplicationPeerConfig(REGION_REPLICA_REPLICATION_PEER);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    } catch (ReplicationPeerNotFoundException e) {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      LOG.warn("Region replica replication peer id=" + REGION_REPLICA_REPLICATION_PEER<a name="line.156"></a>
-<span class="sourceLineNo">157</span>          + " not exist", e);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    try {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      if (peerConfig == null) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        LOG.info("Region replica replication peer id=" + REGION_REPLICA_REPLICATION_PEER<a name="line.161"></a>
-<span class="sourceLineNo">162</span>            + " not exist. Creating...");<a name="line.162"></a>
-<span class="sourceLineNo">163</span>        peerConfig = new ReplicationPeerConfig();<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        peerConfig.setClusterKey(ZKConfig.getZooKeeperClusterKey(conf));<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        peerConfig.setReplicationEndpointImpl(RegionReplicaReplicationEndpoint.class.getName());<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        admin.addReplicationPeer(REGION_REPLICA_REPLICATION_PEER, peerConfig);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    } finally {<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      admin.close();<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>  public static boolean isRegionReplicaReplicationEnabled(Configuration conf) {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    return conf.getBoolean(REGION_REPLICA_REPLICATION_CONF_KEY,<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      DEFAULT_REGION_REPLICA_REPLICATION);<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>  public static boolean isRegionReplicaWaitForPrimaryFlushEnabled(Configuration conf) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>    return conf.getBoolean(REGION_REPLICA_WAIT_FOR_PRIMARY_FLUSH_CONF_KEY,<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      DEFAULT_REGION_REPLICA_WAIT_FOR_PRIMARY_FLUSH);<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>  public static boolean isRegionReplicaStoreFileRefreshEnabled(Configuration conf) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    return conf.getBoolean(REGION_REPLICA_STORE_FILE_REFRESH,<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      DEFAULT_REGION_REPLICA_STORE_FILE_REFRESH);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  }<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public static double getRegionReplicaStoreFileRefreshMultiplier(Configuration conf) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    return conf.getDouble(REGION_REPLICA_STORE_FILE_REFRESH_MEMSTORE_MULTIPLIER,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      DEFAULT_REGION_REPLICA_STORE_FILE_REFRESH_MEMSTORE_MULTIPLIER);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  /**<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * Return the peer id used for replicating to secondary region replicas<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   */<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  public static String getReplicationPeerId() {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    return REGION_REPLICA_REPLICATION_PEER;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>  }<a name="line.198"></a>
-<span class="sourceLineNo">199</span><a name="line.199"></a>
-<span class="sourceLineNo">200</span>}<a name="line.200"></a>
+<span class="sourceLineNo">131</span>    if (HFileLink.isHFileLink(path) || StoreFileInfo.isHFile(path)) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      HFileLink link = HFileLink<a name="line.132"></a>
+<span class="sourceLineNo">133</span>          .build(conf, regionInfoForFs.getTable(), regionInfoForFs.getEncodedName(), familyName,<a name="line.133"></a>
+<span class="sourceLineNo">134</span>              path.getName());<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      return new StoreFileInfo(conf, fs, link.getFileStatus(fs), link);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    } else if (StoreFileInfo.isReference(path)) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      Reference reference = Reference.read(fs, path);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      Path referencePath = StoreFileInfo.getReferredToFile(path);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      if (HFileLink.isHFileLink(referencePath)) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        // HFileLink Reference<a name="line.140"></a>
+<span class="sourceLineNo">141</span>        HFileLink link = HFileLink.buildFromHFileLinkPattern(conf, referencePath);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>        return new StoreFileInfo(conf, fs, link.getFileStatus(fs), reference, link);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      } else {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        // Reference<a name="line.144"></a>
+<span class="sourceLineNo">145</span>        HFileLink link = HFileLink<a name="line.145"></a>
+<span class="sourceLineNo">146</span>            .build(conf, regionInfoForFs.getTable(), regionInfoForFs.getEncodedName(), familyName,<a name="line.146"></a>
+<span class="sourceLineNo">147</span>                path.getName());<a name="line.147"></a>
+<span class="sourceLineNo">148</span>        return new StoreFileInfo(conf, fs, link.getFileStatus(fs), reference);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    } else {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      throw new IOException("path=" + path + " doesn't look like a valid StoreFile");<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span>   * Create replication peer for replicating to region replicas if needed.<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   * @param conf configuration to use<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   * @throws IOException<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   */<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  public static void setupRegionReplicaReplication(Configuration conf) throws IOException {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    if (!isRegionReplicaReplicationEnabled(conf)) {<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      return;<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    Admin admin = ConnectionFactory.createConnection(conf).getAdmin();<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    ReplicationPeerConfig peerConfig = null;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    try {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      peerConfig = admin.getReplicationPeerConfig(REGION_REPLICA_REPLICATION_PEER);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    } catch (ReplicationPeerNotFoundException e) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      LOG.warn("Region replica replication peer id=" + REGION_REPLICA_REPLICATION_PEER<a name="line.169"></a>
+<span class="sourceLineNo">170</span>          + " not exist", e);<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>      if (peerConfig == null) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        LOG.info("Region replica replication peer id=" + REGION_REPLICA_REPLICATION_PEER<a name="line.174"></a>
+<span class="sourceLineNo">175</span>            + " not exist. Creating...");<a name="line.175"></a>
+<span class="sourceLineNo">176</span>        peerConfig = new ReplicationPeerConfig();<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        peerConfig.setClusterKey(ZKConfig.getZooKeeperClusterKey(conf));<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        peerConfig.setReplicationEndpointImpl(RegionReplicaReplicationEndpoint.class.getName());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        admin.addReplicationPeer(REGION_REPLICA_REPLICATION_PEER, peerConfig);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    } finally {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      admin.close();<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  public static boolean isRegionReplicaReplicationEnabled(Configuration conf) {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    return conf.getBoolean(REGION_REPLICA_REPLICATION_CONF_KEY,<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      DEFAULT_REGION_REPLICA_REPLICATION);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  public static boolean isRegionReplicaWaitForPrimaryFlushEnabled(Configuration conf) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    return conf.getBoolean(REGION_REPLICA_WAIT_FOR_PRIMARY_FLUSH_CONF_KEY,<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      DEFAULT_REGION_REPLICA_WAIT_FOR_PRIMARY_FLUSH);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>  public static boolean isRegionReplicaStoreFileRefreshEnabled(Configuration conf) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    return conf.getBoolean(REGION_REPLICA_STORE_FILE_REFRESH,<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      DEFAULT_REGION_REPLICA_STORE_FILE_REFRESH);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>  }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span>  public static double getRegionReplicaStoreFileRefreshMultiplier(Configuration conf) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    return conf.getDouble(REGION_REPLICA_STORE_FILE_REFRESH_MEMSTORE_MULTIPLIER,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      DEFAULT_REGION_REPLICA_STORE_FILE_REFRESH_MEMSTORE_MULTIPLIER);<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>   * Return the peer id used for replicating to secondary region replicas<a name="line.207"></a>
+<span class="sourceLineNo">208</span>   */<a name="line.208"></a>
+<span class="sourceLineNo">209</span>  public static String getReplicationPeerId() {<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    return REGION_REPLICA_REPLICATION_PEER;<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 84f037c..77eedc4 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -331,7 +331,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 7c1057b..3b98ce8 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -409,7 +409,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index a17c968..34254a0 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -291,7 +291,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index bebda7d..e8c1b86 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -288,7 +288,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index f3d6b45..d5b590e 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -491,7 +491,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 124299f..df7a0d4 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -341,7 +341,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index b09b137..47ac71f 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -440,7 +440,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 0b3ca28..e381eb6 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -440,7 +440,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 0f0ae76..add85b3 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -769,7 +769,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 87c9361..2760655 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -335,7 +335,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index a409fdd..0898bdd 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -305,7 +305,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 75a2527..a43e6ab 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -331,7 +331,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index b8e0d32..b75d2a0 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -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: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 9195e99..1d52c04 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -303,7 +303,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index aca09b7..7ae76bf 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -331,7 +331,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 80340d7..4601757 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -299,7 +299,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index b82ad87..575bbe2 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -333,7 +333,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 0dff428..8a6e85f 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -520,7 +520,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index b80896a..2324a65 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -730,7 +730,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 3883986..2578e2b 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -3679,6 +3679,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestIncrementTimeRange.html#checkHTableInterfaceMethods--">checkHTableInterfaceMethods()</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestIncrementTimeRange.html" title="class in org.apache.hadoop.hbase.coprocessor">TestIncrementTimeRange</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#checkHttpMethods-java.lang.String-">checkHttpMethods(String)</a></span> - Method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html" title="class in org.apache.hadoop.hbase.thrift">TestThriftHttpServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html#checkIfDaughterInherits2FN-java.util.List-java.util.List-">checkIfDaughterInherits2FN(List&lt;ServerName&gt;, List&lt;ServerName&gt;)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client">TestTableFavoredNodes</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html#checkIfFavoredNodeInformationIsCorrect-org.apache.hadoop.hbase.TableName-">checkIfFavoredNodeInformationIsCorrect(TableName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestTableFavoredNodes.html" title="class in org.apache.hadoop.hbase.client">TestTableFavoredNodes</a></dt>
@@ -15080,16 +15082,28 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.Worker.html#getAction--">getAction()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.Worker.html" title="class in org.apache.hadoop.hbase">IntegrationTestDDLMasterFailover.Worker</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">DelegatingRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapperStub</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TestMasterFailoverBalancerPersistence.html#getActiveMasterIndex-org.apache.hadoop.hbase.MiniHBaseCluster-">getActiveMasterIndex(MiniHBaseCluster)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestMasterFailoverBalancerPersistence.html" title="class in org.apache.hadoop.hbase.master">TestMasterFailoverBalancerPersistence</a></dt>
 <dd>
 <div class="block">return the index of the active master in the cluster</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/TestActiveMasterManager.DummyMaster.html#getActiveMasterManager--">getActiveMasterManager()</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestActiveMasterManager.DummyMaster.html" title="class in org.apache.hadoop.hbase.master">TestActiveMasterManager.DummyMaster</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">DelegatingRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapperStub</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">DelegatingRpcScheduler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapperStub</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">DelegatingRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapperStub</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">DelegatingRpcScheduler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapperStub</a></dt>
@@ -40594,7 +40608,7 @@
 <dd>
 <div class="block">A set of ports that have been claimed using <a href="org/apache/hadoop/hbase/HBaseTestingUtility.PortAllocator.html#randomFreePort--"><code>HBaseTestingUtility.PortAllocator.randomFreePort()</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#talkToThriftServer-int-">talkToThriftServer(int)</a></span> - Method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html" title="class in org.apache.hadoop.hbase.thrift">TestThriftHttpServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#talkToThriftServer-java.lang.String-int-">talkToThriftServer(String, int)</a></span> - Method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html" title="class in org.apache.hadoop.hbase.thrift">TestThriftHttpServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.html#talkToThriftServer--">talkToThriftServer()</a></span> - Method in class org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.html" title="class in org.apache.hadoop.hbase.thrift">TestThriftServerCmdLine</a></dt>
 <dd>&nbsp;</dd>
@@ -50838,6 +50852,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/trace/TestHTraceHooks.html#TestHTraceHooks--">TestHTraceHooks()</a></span> - Constructor for class org.apache.hadoop.hbase.trace.<a href="org/apache/hadoop/hbase/trace/TestHTraceHooks.html" title="class in org.apache.hadoop.hbase.trace">TestHTraceHooks</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/TestHttpServer.html#testHttpMethods--">testHttpMethods()</a></span> - Method in class org.apache.hadoop.hbase.http.<a href="org/apache/hadoop/hbase/http/TestHttpServer.html" title="class in org.apache.hadoop.hbase.http">TestHttpServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html" title="class in org.apache.hadoop.hbase.client.example"><span class="typeNameLink">TestHttpProxyExample</span></a> - Class in <a href="org/apache/hadoop/hbase/client/example/package-summary.html">org.apache.hadoop.hbase.client.example</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html#TestHttpProxyExample--">TestHttpProxyExample()</a></span> - Constructor for class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html" title="class in org.apache.hadoop.hbase.client.example">TestHttpProxyExample</a></dt>
@@ -61404,6 +61420,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotasWithSnapshots.html#testTablesWithSnapshots--">testTablesWithSnapshots()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestSpaceQuotasWithSnapshots.html" title="class in org.apache.hadoop.hbase.quotas">TestSpaceQuotasWithSnapshots</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaState.html#testTableThrottleWithBatch--">testTableThrottleWithBatch()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaState.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaState</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TestAccessController.html#testTableTruncate--">testTableTruncate()</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TestAccessController.html" title="class in org.apache.hadoop.hbase.security.access">TestAccessController</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaObserverChoreWithMiniCluster.html#testTableViolatesQuota--">testTableViolatesQuota()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaObserverChoreWithMiniCluster.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaObserverChoreWithMiniCluster</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessor.SpyingRpcScheduler.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessor.SpyingRpcScheduler.html b/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessor.SpyingRpcScheduler.html
index 7d69a22..1652604 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessor.SpyingRpcScheduler.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestMetaTableAccessor.SpyingRpcScheduler.html
@@ -218,7 +218,7 @@ extends <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.ipc.<a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">DelegatingRpcScheduler</a></h3>
-<code><a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getCallQueueInfo--">getCallQueueInfo</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getGeneralQueueLength--">getGeneralQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a>, <a href="../../../../org/apache/hadoop/h
 base/ipc/DelegatingRpcScheduler.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getPriorityQueueLength--">getPriorityQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getReadQueueLength--">getReadQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getReplicationQueueLength--">getReplicationQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getScanQueueLength--">getScanQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getWriteQueueLength--">getWriteQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#init-org.apache.hadoop.hbase.ipc.RpcScheduler.Context-">init</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#start--">start</a>, <a href="../../../../org/ap
 ache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#stop--">stop</a></code></li>
+<code><a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveWriteRpcHandlerCount--">get
 ActiveWriteRpcHandlerCount</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getCallQueueInfo--">getCallQueueInfo</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getGeneralQueueLength--">getGeneralQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getPriorityQueueLength--">getPriorityQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getReadQueueLength--">getReadQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getReplicationQueueLength--">getReplicationQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/Delegatin
 gRpcScheduler.html#getScanQueueLength--">getScanQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getWriteQueueLength--">getWriteQueueLength</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#init-org.apache.hadoop.hbase.ipc.RpcScheduler.Context-">init</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#start--">start</a>, <a href="../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#stop--">stop</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html
index 07ce1a4..abb7020 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.35">TestRestoreSnapshotFromClientWithRegionReplicas</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.33">TestRestoreSnapshotFromClientWithRegionReplicas</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></pre>
 </li>
 </ul>
@@ -220,7 +220,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapsh
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.39">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.37">CLASS_RULE</a></pre>
 </li>
 </ul>
 </li>
@@ -237,7 +237,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapsh
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestRestoreSnapshotFromClientWithRegionReplicas</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.35">TestRestoreSnapshotFromClientWithRegionReplicas</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.33">TestRestoreSnapshotFromClientWithRegionReplicas</a>()</pre>
 </li>
 </ul>
 </li>
@@ -254,7 +254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapsh
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumReplicas</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.43">getNumReplicas</a>()</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.41">getNumReplicas</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#getNumReplicas--">getNumReplicas</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></code></dd>
@@ -267,7 +267,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapsh
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testOnlineSnapshotAfterSplittingRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.48">testOnlineSnapshotAfterSplittingRegions</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#line.46">testOnlineSnapshotAfterSplittingRegions</a>()
                                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html b/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html
index f477283..ec1aab5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/http/TestHttpServer.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":9,"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};
+var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":9,"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 tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -311,37 +311,41 @@ extends <a href="../../../../../org/apache/hadoop/hbase/http/HttpServerFunctiona
 </tr>
 <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/http/TestHttpServer.html#testJersey--">testJersey</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/http/TestHttpServer.html#testHttpMethods--">testHttpMethods</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i13" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/http/TestHttpServer.html#testJersey--">testJersey</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/http/TestHttpServer.html#testLongHeader--">testLongHeader</a></span>()</code>
 <div class="block">Test that verifies headers can be up to 64K long.</div>
 </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/http/TestHttpServer.html#testMaxThreads--">testMaxThreads</a></span>()</code>
 <div class="block">Test the maximum number of threads cannot be exceeded.</div>
 </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/http/TestHttpServer.html#testNoCacheHeader--">testNoCacheHeader</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/http/TestHttpServer.html#testRequestQuoterWithNotNull--">testRequestQuoterWithNotNull</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/http/TestHttpServer.html#testRequestQuoterWithNull--">testRequestQuoterWithNull</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/http/TestHttpServer.html#testRequiresAuthorizationAccess--">testRequiresAuthorizationAccess</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<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/http/TestHttpServer.html#testXFrameHeaderSameOrigin--">testXFrameHeaderSameOrigin</a></span>()</code>&nbsp;</td>
 </tr>
@@ -740,10 +744,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/http/HttpServerFunctiona
 <a name="testNoCacheHeader--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testNoCacheHeader</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/http/TestHttpServer.html#line.611">testNoCacheHeader</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/http/TestHttpServer.html#line.609">testNoCacheHeader</a>()
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -751,6 +755,20 @@ extends <a href="../../../../../org/apache/hadoop/hbase/http/HttpServerFunctiona
 </dl>
 </li>
 </ul>
+<a name="testHttpMethods--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testHttpMethods</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/http/TestHttpServer.html#line.622">testHttpMethods</a>()
+                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html b/testdevapidocs/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html
index 95a4fde..f841917 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -202,65 +202,77 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.hbase.ipc.CallQueueInfo</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getCallQueueInfo--">getCallQueueInfo</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getPriorityQueueLength--">getPriorityQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getReadQueueLength--">getReadQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getReplicationQueueLength--">getReplicationQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getScanQueueLength--">getScanQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#getWriteQueueLength--">getWriteQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i14" 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/ipc/DelegatingRpcScheduler.html#init-org.apache.hadoop.hbase.ipc.RpcScheduler.Context-">init</a></span>(org.apache.hadoop.hbase.ipc.RpcScheduler.Context&nbsp;context)</code>&nbsp;</td>
 </tr>
-<tr id="i15" 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/ipc/DelegatingRpcScheduler.html#start--">start</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i16" 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/ipc/DelegatingRpcScheduler.html#stop--">stop</a></span>()</code>&nbsp;</td>
 </tr>
@@ -411,13 +423,52 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 </dl>
 </li>
 </ul>
+<a name="getActiveGeneralRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveGeneralRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.63">getActiveGeneralRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getActiveGeneralRpcHandlerCount</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActivePriorityRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActivePriorityRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.68">getActivePriorityRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getActivePriorityRpcHandlerCount</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveReplicationRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveReplicationRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.73">getActiveReplicationRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getActiveReplicationRpcHandlerCount</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
+</dl>
+</li>
+</ul>
 <a name="dispatch-org.apache.hadoop.hbase.ipc.CallRunner-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>dispatch</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.63">dispatch</a>(org.apache.hadoop.hbase.ipc.CallRunner&nbsp;task)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.78">dispatch</a>(org.apache.hadoop.hbase.ipc.CallRunner&nbsp;task)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
@@ -435,7 +486,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumGeneralCallsDropped</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.68">getNumGeneralCallsDropped</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.83">getNumGeneralCallsDropped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getNumGeneralCallsDropped</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
@@ -448,7 +499,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLifoModeSwitches</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.73">getNumLifoModeSwitches</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.88">getNumLifoModeSwitches</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getNumLifoModeSwitches</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
@@ -461,7 +512,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.78">getWriteQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.93">getWriteQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getWriteQueueLength</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
@@ -474,7 +525,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.83">getReadQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.98">getReadQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getReadQueueLength</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
@@ -487,7 +538,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.88">getScanQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.103">getScanQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getScanQueueLength</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
@@ -500,7 +551,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveWriteRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.93">getActiveWriteRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.108">getActiveWriteRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getActiveWriteRpcHandlerCount</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
@@ -513,7 +564,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveReadRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.98">getActiveReadRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.113">getActiveReadRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getActiveReadRpcHandlerCount</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
@@ -526,7 +577,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveScanRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.103">getActiveScanRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.118">getActiveScanRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getActiveScanRpcHandlerCount</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>
@@ -539,7 +590,7 @@ extends org.apache.hadoop.hbase.ipc.RpcScheduler</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCallQueueInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.ipc.CallQueueInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.108">getCallQueueInfo</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.ipc.CallQueueInfo&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html#line.123">getCallQueueInfo</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getCallQueueInfo</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.ipc.RpcScheduler</code></dd>


[11/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
index 80bd305..ee8178a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
@@ -39,44 +39,48 @@
 <span class="sourceLineNo">031</span>  /**<a name="line.31"></a>
 <span class="sourceLineNo">032</span>   * Checks if it is possible to execute the specified operation.<a name="line.32"></a>
 <span class="sourceLineNo">033</span>   *<a name="line.33"></a>
-<span class="sourceLineNo">034</span>   * @param estimateWriteSize the write size that will be checked against the available quota<a name="line.34"></a>
-<span class="sourceLineNo">035</span>   * @param estimateReadSize the read size that will be checked against the available quota<a name="line.35"></a>
-<span class="sourceLineNo">036</span>   * @throws RpcThrottlingException thrown if not enough avialable resources to perform operation.<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   */<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  void checkQuota(long estimateWriteSize, long estimateReadSize)<a name="line.38"></a>
-<span class="sourceLineNo">039</span>    throws RpcThrottlingException;<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>  /**<a name="line.41"></a>
-<span class="sourceLineNo">042</span>   * Removes the specified write and read amount from the quota.<a name="line.42"></a>
-<span class="sourceLineNo">043</span>   * At this point the write and read amount will be an estimate,<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   * that will be later adjusted with a consumeWrite()/consumeRead() call.<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   *<a name="line.45"></a>
-<span class="sourceLineNo">046</span>   * @param writeSize the write size that will be removed from the current quota<a name="line.46"></a>
-<span class="sourceLineNo">047</span>   * @param readSize the read size that will be removed from the current quota<a name="line.47"></a>
-<span class="sourceLineNo">048</span>   */<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  void grabQuota(long writeSize, long readSize);<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>  /**<a name="line.51"></a>
-<span class="sourceLineNo">052</span>   * Removes or add back some write amount to the quota.<a name="line.52"></a>
-<span class="sourceLineNo">053</span>   * (called at the end of an operation in case the estimate quota was off)<a name="line.53"></a>
-<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  void consumeWrite(long size);<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  /**<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   * Removes or add back some read amount to the quota.<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   * (called at the end of an operation in case the estimate quota was off)<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  void consumeRead(long size);<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  /** @return true if the limiter is a noop */<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  boolean isBypass();<a name="line.64"></a>
-<span class="sourceLineNo">065</span><a name="line.65"></a>
-<span class="sourceLineNo">066</span>    /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  long getReadAvailable();<a name="line.67"></a>
-<span class="sourceLineNo">068</span><a name="line.68"></a>
-<span class="sourceLineNo">069</span>  /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  long getWriteAvailable();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>}<a name="line.71"></a>
+<span class="sourceLineNo">034</span>   * @param writeReqs the write requests that will be checked against the available quota<a name="line.34"></a>
+<span class="sourceLineNo">035</span>   * @param estimateWriteSize the write size that will be checked against the available quota<a name="line.35"></a>
+<span class="sourceLineNo">036</span>   * @param readReqs the read requests that will be checked against the available quota<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   * @param estimateReadSize the read size that will be checked against the available quota<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * @throws RpcThrottlingException thrown if not enough available resources to perform operation.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  void checkQuota(long writeReqs, long estimateWriteSize, long readReqs, long estimateReadSize)<a name="line.40"></a>
+<span class="sourceLineNo">041</span>      throws RpcThrottlingException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  /**<a name="line.43"></a>
+<span class="sourceLineNo">044</span>   * Removes the specified write and read amount from the quota.<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * At this point the write and read amount will be an estimate,<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   * that will be later adjusted with a consumeWrite()/consumeRead() call.<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   *<a name="line.47"></a>
+<span class="sourceLineNo">048</span>   * @param writeReqs the write requests that will be removed from the current quota<a name="line.48"></a>
+<span class="sourceLineNo">049</span>   * @param writeSize the write size that will be removed from the current quota<a name="line.49"></a>
+<span class="sourceLineNo">050</span>   * @param readReqs the read requests that will be removed from the current quota<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * @param readSize the read size that will be removed from the current quota<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  void grabQuota(long writeReqs, long writeSize, long readReqs, long readSize);<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  /**<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * Removes or add back some write amount to the quota.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * (called at the end of an operation in case the estimate quota was off)<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  void consumeWrite(long size);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   * Removes or add back some read amount to the quota.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * (called at the end of an operation in case the estimate quota was off)<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  void consumeRead(long size);<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  /** @return true if the limiter is a noop */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  boolean isBypass();<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>    /** @return the number of bytes available to read to avoid exceeding the quota */<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  long getReadAvailable();<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  /** @return the number of bytes available to write to avoid exceeding the quota */<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  long getWriteAvailable();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>}<a name="line.75"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
index 16a2371..7e6dad2 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
@@ -118,92 +118,95 @@
 <span class="sourceLineNo">110</span>  }<a name="line.110"></a>
 <span class="sourceLineNo">111</span><a name="line.111"></a>
 <span class="sourceLineNo">112</span>  @Override<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  public void checkQuota(long writeSize, long readSize) throws RpcThrottlingException {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    if (!reqsLimiter.canExecute()) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      RpcThrottlingException.throwNumRequestsExceeded(reqsLimiter.waitInterval());<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    if (!reqSizeLimiter.canExecute(writeSize + readSize)) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      RpcThrottlingException.throwRequestSizeExceeded(reqSizeLimiter<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          .waitInterval(writeSize + readSize));<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>    if (writeSize &gt; 0) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      if (!writeReqsLimiter.canExecute()) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        RpcThrottlingException.throwNumWriteRequestsExceeded(writeReqsLimiter.waitInterval());<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      }<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      if (!writeSizeLimiter.canExecute(writeSize)) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        RpcThrottlingException.throwWriteSizeExceeded(writeSizeLimiter.waitInterval(writeSize));<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><a name="line.130"></a>
-<span class="sourceLineNo">131</span>    if (readSize &gt; 0) {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      if (!readReqsLimiter.canExecute()) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        RpcThrottlingException.throwNumReadRequestsExceeded(readReqsLimiter.waitInterval());<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      if (!readSizeLimiter.canExecute(readSize)) {<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        RpcThrottlingException.throwReadSizeExceeded(readSizeLimiter.waitInterval(readSize));<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      }<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  }<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>  public void grabQuota(long writeSize, long readSize) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    assert writeSize != 0 || readSize != 0;<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>    reqsLimiter.consume(1);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    reqSizeLimiter.consume(writeSize + readSize);<a name="line.146"></a>
+<span class="sourceLineNo">113</span>  public void checkQuota(long writeReqs, long estimateWriteSize, long readReqs,<a name="line.113"></a>
+<span class="sourceLineNo">114</span>      long estimateReadSize) throws RpcThrottlingException {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    if (!reqsLimiter.canExecute(writeReqs + readReqs)) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      RpcThrottlingException.throwNumRequestsExceeded(reqsLimiter.waitInterval());<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    if (!reqSizeLimiter.canExecute(estimateWriteSize + estimateReadSize)) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      RpcThrottlingException.throwRequestSizeExceeded(<a name="line.119"></a>
+<span class="sourceLineNo">120</span>          reqSizeLimiter.waitInterval(estimateWriteSize + estimateReadSize));<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>    if (estimateWriteSize &gt; 0) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      if (!writeReqsLimiter.canExecute(writeReqs)) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        RpcThrottlingException.throwNumWriteRequestsExceeded(writeReqsLimiter.waitInterval());<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      }<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      if (!writeSizeLimiter.canExecute(estimateWriteSize)) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        RpcThrottlingException.throwWriteSizeExceeded(<a name="line.128"></a>
+<span class="sourceLineNo">129</span>            writeSizeLimiter.waitInterval(estimateWriteSize));<a name="line.129"></a>
+<span class="sourceLineNo">130</span>      }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>    if (estimateReadSize &gt; 0) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      if (!readReqsLimiter.canExecute(readReqs)) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>        RpcThrottlingException.throwNumReadRequestsExceeded(readReqsLimiter.waitInterval());<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      }<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      if (!readSizeLimiter.canExecute(estimateReadSize)) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        RpcThrottlingException.throwReadSizeExceeded(<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            readSizeLimiter.waitInterval(estimateReadSize));<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><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  @Override<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  public void grabQuota(long writeReqs, long writeSize, long readReqs, long readSize) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    assert writeSize != 0 || readSize != 0;<a name="line.146"></a>
 <span class="sourceLineNo">147</span><a name="line.147"></a>
-<span class="sourceLineNo">148</span>    if (writeSize &gt; 0) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      writeReqsLimiter.consume(1);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      writeSizeLimiter.consume(writeSize);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    if (readSize &gt; 0) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      readReqsLimiter.consume(1);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      readSizeLimiter.consume(readSize);<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  @Override<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public void consumeWrite(final long size) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    reqSizeLimiter.consume(size);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    writeSizeLimiter.consume(size);<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>  @Override<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  public void consumeRead(final long size) {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    reqSizeLimiter.consume(size);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    readSizeLimiter.consume(size);<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>  @Override<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  public boolean isBypass() {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    return false;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  @Override<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  public long getWriteAvailable() {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    return writeSizeLimiter.getAvailable();<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  public long getReadAvailable() {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    return readSizeLimiter.getAvailable();<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>  @Override<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public String toString() {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    StringBuilder builder = new StringBuilder();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    builder.append("TimeBasedLimiter(");<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    if (!reqsLimiter.isBypass()) builder.append("reqs=" + reqsLimiter);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    if (!reqSizeLimiter.isBypass()) builder.append(" resSize=" + reqSizeLimiter);<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    if (!writeReqsLimiter.isBypass()) builder.append(" writeReqs=" + writeReqsLimiter);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    if (!writeSizeLimiter.isBypass()) builder.append(" writeSize=" + writeSizeLimiter);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    if (!readReqsLimiter.isBypass()) builder.append(" readReqs=" + readReqsLimiter);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    if (!readSizeLimiter.isBypass()) builder.append(" readSize=" + readSizeLimiter);<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    builder.append(')');<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    return builder.toString();<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
-<span class="sourceLineNo">198</span>}<a name="line.198"></a>
+<span class="sourceLineNo">148</span>    reqsLimiter.consume(writeReqs + readReqs);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    reqSizeLimiter.consume(writeSize + readSize);<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>    if (writeSize &gt; 0) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      writeReqsLimiter.consume(writeReqs);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>      writeSizeLimiter.consume(writeSize);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    }<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    if (readSize &gt; 0) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      readReqsLimiter.consume(readReqs);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>      readSizeLimiter.consume(readSize);<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><a name="line.160"></a>
+<span class="sourceLineNo">161</span>  @Override<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  public void consumeWrite(final long size) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    reqSizeLimiter.consume(size);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    writeSizeLimiter.consume(size);<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>  @Override<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public void consumeRead(final long size) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    reqSizeLimiter.consume(size);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    readSizeLimiter.consume(size);<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>  @Override<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public boolean isBypass() {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    return false;<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>  @Override<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  public long getWriteAvailable() {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    return writeSizeLimiter.getAvailable();<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>  @Override<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  public long getReadAvailable() {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    return readSizeLimiter.getAvailable();<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  @Override<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  public String toString() {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    StringBuilder builder = new StringBuilder();<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    builder.append("TimeBasedLimiter(");<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    if (!reqsLimiter.isBypass()) builder.append("reqs=" + reqsLimiter);<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    if (!reqSizeLimiter.isBypass()) builder.append(" resSize=" + reqSizeLimiter);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    if (!writeReqsLimiter.isBypass()) builder.append(" writeReqs=" + writeReqsLimiter);<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    if (!writeSizeLimiter.isBypass()) builder.append(" writeSize=" + writeSizeLimiter);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    if (!readReqsLimiter.isBypass()) builder.append(" readReqs=" + readReqsLimiter);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    if (!readSizeLimiter.isBypass()) builder.append(" readSize=" + readSizeLimiter);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    builder.append(')');<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    return builder.toString();<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>}<a name="line.201"></a>
 
 
 


[02/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.HtmlContentServlet.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.HtmlContentServlet.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.HtmlContentServlet.html
index 5681a20..cbcaf55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.HtmlContentServlet.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.HtmlContentServlet.html
@@ -613,21 +613,30 @@
 <span class="sourceLineNo">605</span>    myServer.stop();<a name="line.605"></a>
 <span class="sourceLineNo">606</span>  }<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>  @Test<a name="line.610"></a>
-<span class="sourceLineNo">611</span>  public void testNoCacheHeader() throws Exception {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>}<a name="line.622"></a>
+<span class="sourceLineNo">608</span>  @Test<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  public void testNoCacheHeader() throws Exception {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<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>  @Test<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  public void testHttpMethods() throws Exception {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    // HTTP TRACE method should be disabled for security<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    URL url = new URL(baseUrl, "/echo?a=b");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    conn.setRequestMethod("TRACE");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    conn.connect();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<a name="line.629"></a>
+<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>}<a name="line.631"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.LongHeaderServlet.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.LongHeaderServlet.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.LongHeaderServlet.html
index 5681a20..cbcaf55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.LongHeaderServlet.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.LongHeaderServlet.html
@@ -613,21 +613,30 @@
 <span class="sourceLineNo">605</span>    myServer.stop();<a name="line.605"></a>
 <span class="sourceLineNo">606</span>  }<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>  @Test<a name="line.610"></a>
-<span class="sourceLineNo">611</span>  public void testNoCacheHeader() throws Exception {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>}<a name="line.622"></a>
+<span class="sourceLineNo">608</span>  @Test<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  public void testNoCacheHeader() throws Exception {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<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>  @Test<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  public void testHttpMethods() throws Exception {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    // HTTP TRACE method should be disabled for security<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    URL url = new URL(baseUrl, "/echo?a=b");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    conn.setRequestMethod("TRACE");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    conn.connect();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<a name="line.629"></a>
+<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>}<a name="line.631"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.MyGroupsProvider.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.MyGroupsProvider.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.MyGroupsProvider.html
index 5681a20..cbcaf55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.MyGroupsProvider.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.MyGroupsProvider.html
@@ -613,21 +613,30 @@
 <span class="sourceLineNo">605</span>    myServer.stop();<a name="line.605"></a>
 <span class="sourceLineNo">606</span>  }<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>  @Test<a name="line.610"></a>
-<span class="sourceLineNo">611</span>  public void testNoCacheHeader() throws Exception {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>}<a name="line.622"></a>
+<span class="sourceLineNo">608</span>  @Test<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  public void testNoCacheHeader() throws Exception {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<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>  @Test<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  public void testHttpMethods() throws Exception {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    // HTTP TRACE method should be disabled for security<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    URL url = new URL(baseUrl, "/echo?a=b");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    conn.setRequestMethod("TRACE");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    conn.connect();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<a name="line.629"></a>
+<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>}<a name="line.631"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.html
index 5681a20..cbcaf55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.html
@@ -613,21 +613,30 @@
 <span class="sourceLineNo">605</span>    myServer.stop();<a name="line.605"></a>
 <span class="sourceLineNo">606</span>  }<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>  @Test<a name="line.610"></a>
-<span class="sourceLineNo">611</span>  public void testNoCacheHeader() throws Exception {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>}<a name="line.622"></a>
+<span class="sourceLineNo">608</span>  @Test<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  public void testNoCacheHeader() throws Exception {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<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>  @Test<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  public void testHttpMethods() throws Exception {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    // HTTP TRACE method should be disabled for security<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    URL url = new URL(baseUrl, "/echo?a=b");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    conn.setRequestMethod("TRACE");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    conn.connect();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<a name="line.629"></a>
+<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>}<a name="line.631"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html
index 6c90fbc..fd59afc 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/DelegatingRpcScheduler.html
@@ -68,55 +68,70 @@
 <span class="sourceLineNo">060</span>  }<a name="line.60"></a>
 <span class="sourceLineNo">061</span><a name="line.61"></a>
 <span class="sourceLineNo">062</span>  @Override<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public boolean dispatch(CallRunner task) throws IOException, InterruptedException {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    return delegate.dispatch(task);<a name="line.64"></a>
+<span class="sourceLineNo">063</span>  public int getActiveGeneralRpcHandlerCount() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    return delegate.getActiveGeneralRpcHandlerCount();<a name="line.64"></a>
 <span class="sourceLineNo">065</span>  }<a name="line.65"></a>
 <span class="sourceLineNo">066</span><a name="line.66"></a>
 <span class="sourceLineNo">067</span>  @Override<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  public long getNumGeneralCallsDropped() {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    return delegate.getNumGeneralCallsDropped();<a name="line.69"></a>
+<span class="sourceLineNo">068</span>  public int getActivePriorityRpcHandlerCount() {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    return delegate.getActivePriorityRpcHandlerCount();<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>  @Override<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public long getNumLifoModeSwitches() {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    return delegate.getNumLifoModeSwitches();<a name="line.74"></a>
+<span class="sourceLineNo">073</span>  public int getActiveReplicationRpcHandlerCount() {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    return delegate.getActiveReplicationRpcHandlerCount();<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  }<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
 <span class="sourceLineNo">077</span>  @Override<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public int getWriteQueueLength() {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    return 0;<a name="line.79"></a>
+<span class="sourceLineNo">078</span>  public boolean dispatch(CallRunner task) throws IOException, InterruptedException {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    return delegate.dispatch(task);<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>  @Override<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public int getReadQueueLength() {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    return 0;<a name="line.84"></a>
+<span class="sourceLineNo">083</span>  public long getNumGeneralCallsDropped() {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    return delegate.getNumGeneralCallsDropped();<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>  @Override<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public int getScanQueueLength() {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    return 0;<a name="line.89"></a>
+<span class="sourceLineNo">088</span>  public long getNumLifoModeSwitches() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    return delegate.getNumLifoModeSwitches();<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>  @Override<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.93"></a>
+<span class="sourceLineNo">093</span>  public int getWriteQueueLength() {<a name="line.93"></a>
 <span class="sourceLineNo">094</span>    return 0;<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>  @Override<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  public int getActiveReadRpcHandlerCount() {<a name="line.98"></a>
+<span class="sourceLineNo">098</span>  public int getReadQueueLength() {<a name="line.98"></a>
 <span class="sourceLineNo">099</span>    return 0;<a name="line.99"></a>
 <span class="sourceLineNo">100</span>  }<a name="line.100"></a>
 <span class="sourceLineNo">101</span><a name="line.101"></a>
 <span class="sourceLineNo">102</span>  @Override<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public int getActiveScanRpcHandlerCount() {<a name="line.103"></a>
+<span class="sourceLineNo">103</span>  public int getScanQueueLength() {<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    return 0;<a name="line.104"></a>
 <span class="sourceLineNo">105</span>  }<a name="line.105"></a>
 <span class="sourceLineNo">106</span><a name="line.106"></a>
 <span class="sourceLineNo">107</span>  @Override<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  public CallQueueInfo getCallQueueInfo() {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    return delegate.getCallQueueInfo();<a name="line.109"></a>
+<span class="sourceLineNo">108</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    return 0;<a name="line.109"></a>
 <span class="sourceLineNo">110</span>  }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>}<a name="line.111"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  @Override<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  public int getActiveReadRpcHandlerCount() {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    return 0;<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>  @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  public int getActiveScanRpcHandlerCount() {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    return 0;<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>  @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  public CallQueueInfo getCallQueueInfo() {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    return delegate.getCallQueueInfo();<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
+<span class="sourceLineNo">126</span>}<a name="line.126"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html
index 315e5bd..61cc1cf 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html
@@ -58,45 +58,60 @@
 <span class="sourceLineNo">050</span>  }<a name="line.50"></a>
 <span class="sourceLineNo">051</span><a name="line.51"></a>
 <span class="sourceLineNo">052</span>  @Override<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  public long getNumGeneralCallsDropped() {<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    return 3;<a name="line.54"></a>
+<span class="sourceLineNo">053</span>  public int getActiveGeneralRpcHandlerCount() {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    return 201;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>  }<a name="line.55"></a>
 <span class="sourceLineNo">056</span><a name="line.56"></a>
 <span class="sourceLineNo">057</span>  @Override<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  public long getNumLifoModeSwitches() {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    return 5;<a name="line.59"></a>
+<span class="sourceLineNo">058</span>  public int getActivePriorityRpcHandlerCount() {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    return 202;<a name="line.59"></a>
 <span class="sourceLineNo">060</span>  }<a name="line.60"></a>
 <span class="sourceLineNo">061</span><a name="line.61"></a>
 <span class="sourceLineNo">062</span>  @Override<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public int getWriteQueueLength() {<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    return 50;<a name="line.64"></a>
+<span class="sourceLineNo">063</span>  public int getActiveReplicationRpcHandlerCount() {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    return 203;<a name="line.64"></a>
 <span class="sourceLineNo">065</span>  }<a name="line.65"></a>
 <span class="sourceLineNo">066</span><a name="line.66"></a>
 <span class="sourceLineNo">067</span>  @Override<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  public int getReadQueueLength() {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    return 50;<a name="line.69"></a>
+<span class="sourceLineNo">068</span>  public long getNumGeneralCallsDropped() {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    return 3;<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>  @Override<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  public int getScanQueueLength() {<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    return 2;<a name="line.74"></a>
+<span class="sourceLineNo">073</span>  public long getNumLifoModeSwitches() {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    return 5;<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  }<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
 <span class="sourceLineNo">077</span>  @Override<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.78"></a>
+<span class="sourceLineNo">078</span>  public int getWriteQueueLength() {<a name="line.78"></a>
 <span class="sourceLineNo">079</span>    return 50;<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>  @Override<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  public int getActiveReadRpcHandlerCount() {<a name="line.83"></a>
+<span class="sourceLineNo">083</span>  public int getReadQueueLength() {<a name="line.83"></a>
 <span class="sourceLineNo">084</span>    return 50;<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>  @Override<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  public int getActiveScanRpcHandlerCount() {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    return 6;<a name="line.89"></a>
+<span class="sourceLineNo">088</span>  public int getScanQueueLength() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    return 2;<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">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  @Override<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    return 50;<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>  @Override<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  public int getActiveReadRpcHandlerCount() {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    return 50;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>  @Override<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  public int getActiveScanRpcHandlerCount() {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    return 6;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span>}<a name="line.106"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html
index b282236..2541bbd 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html
@@ -82,110 +82,113 @@
 <span class="sourceLineNo">074</span>    HELPER.assertGauge("numCallsInPriorityQueue", 104, serverSource);<a name="line.74"></a>
 <span class="sourceLineNo">075</span>    HELPER.assertGauge("numOpenConnections", 105, serverSource);<a name="line.75"></a>
 <span class="sourceLineNo">076</span>    HELPER.assertGauge("numActiveHandler", 106, serverSource);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    HELPER.assertGauge("numActiveWriteHandler", 50, serverSource);<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    HELPER.assertGauge("numActiveReadHandler", 50, serverSource);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    HELPER.assertGauge("numActiveScanHandler", 6, serverSource);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    HELPER.assertGauge("numCallsInWriteQueue", 50, serverSource);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    HELPER.assertGauge("numCallsInReadQueue", 50, serverSource);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    HELPER.assertGauge("numCallsInScanQueue", 2, serverSource);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  }<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * Test to make sure that all the actively called method on MetricsHBaseServer work.<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   */<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  @Test<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public void testSourceMethods() {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    MetricsHBaseServer mrpc = new MetricsHBaseServer("HMaster", new MetricsHBaseServerWrapperStub());<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    MetricsHBaseServerSource serverSource = mrpc.getMetricsSource();<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>    for (int i=0; i &lt; 12; i++) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      mrpc.authenticationFailure();<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    }<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    for (int i=0; i &lt; 13; i++) {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      mrpc.authenticationSuccess();<a name="line.97"></a>
+<span class="sourceLineNo">077</span>    HELPER.assertGauge("numActiveGeneralHandler", 201, serverSource);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    HELPER.assertGauge("numActivePriorityHandler", 202, serverSource);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    HELPER.assertGauge("numActiveReplicationHandler", 203, serverSource);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    HELPER.assertGauge("numActiveWriteHandler", 50, serverSource);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    HELPER.assertGauge("numActiveReadHandler", 50, serverSource);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    HELPER.assertGauge("numActiveScanHandler", 6, serverSource);<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    HELPER.assertGauge("numCallsInWriteQueue", 50, serverSource);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    HELPER.assertGauge("numCallsInReadQueue", 50, serverSource);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    HELPER.assertGauge("numCallsInScanQueue", 2, serverSource);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  }<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  /**<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * Test to make sure that all the actively called method on MetricsHBaseServer work.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Test<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public void testSourceMethods() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    MetricsHBaseServer mrpc = new MetricsHBaseServer("HMaster", new MetricsHBaseServerWrapperStub());<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    MetricsHBaseServerSource serverSource = mrpc.getMetricsSource();<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>    for (int i=0; i &lt; 12; i++) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      mrpc.authenticationFailure();<a name="line.97"></a>
 <span class="sourceLineNo">098</span>    }<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    HELPER.assertCounter("authenticationFailures", 12, serverSource);<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    HELPER.assertCounter("authenticationSuccesses", 13, serverSource);<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>    for (int i=0; i &lt; 14; i++) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      mrpc.authorizationSuccess();<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    for (int i=0; i &lt; 15; i++) {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      mrpc.authorizationFailure();<a name="line.108"></a>
+<span class="sourceLineNo">099</span>    for (int i=0; i &lt; 13; i++) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      mrpc.authenticationSuccess();<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    }<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    HELPER.assertCounter("authenticationFailures", 12, serverSource);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    HELPER.assertCounter("authenticationSuccesses", 13, serverSource);<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>    for (int i=0; i &lt; 14; i++) {<a name="line.107"></a>
+<span class="sourceLineNo">108</span>      mrpc.authorizationSuccess();<a name="line.108"></a>
 <span class="sourceLineNo">109</span>    }<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    HELPER.assertCounter("authorizationSuccesses", 14, serverSource);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    HELPER.assertCounter("authorizationFailures", 15, serverSource);<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>    mrpc.dequeuedCall(100);<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    mrpc.processedCall(101);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    mrpc.totalCall(102);<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    HELPER.assertCounter("queueCallTime_NumOps", 1, serverSource);<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    HELPER.assertCounter("processCallTime_NumOps", 1, serverSource);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    HELPER.assertCounter("totalCallTime_NumOps", 1, serverSource);<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>    mrpc.sentBytes(103);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    mrpc.sentBytes(103);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    mrpc.sentBytes(103);<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>    mrpc.receivedBytes(104);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    mrpc.receivedBytes(104);<a name="line.126"></a>
+<span class="sourceLineNo">110</span>    for (int i=0; i &lt; 15; i++) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      mrpc.authorizationFailure();<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    HELPER.assertCounter("authorizationSuccesses", 14, serverSource);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    HELPER.assertCounter("authorizationFailures", 15, serverSource);<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>    mrpc.dequeuedCall(100);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    mrpc.processedCall(101);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    mrpc.totalCall(102);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    HELPER.assertCounter("queueCallTime_NumOps", 1, serverSource);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    HELPER.assertCounter("processCallTime_NumOps", 1, serverSource);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    HELPER.assertCounter("totalCallTime_NumOps", 1, serverSource);<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>    mrpc.sentBytes(103);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    mrpc.sentBytes(103);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    mrpc.sentBytes(103);<a name="line.126"></a>
 <span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span>    HELPER.assertCounter("sentBytes", 309, serverSource);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    HELPER.assertCounter("receivedBytes", 208, serverSource);<a name="line.129"></a>
+<span class="sourceLineNo">128</span>    mrpc.receivedBytes(104);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    mrpc.receivedBytes(104);<a name="line.129"></a>
 <span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>    mrpc.receivedRequest(105);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    mrpc.sentResponse(106);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    HELPER.assertCounter("requestSize_NumOps", 1, serverSource);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    HELPER.assertCounter("responseSize_NumOps", 1, serverSource);<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    mrpc.exception(null);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    HELPER.assertCounter("exceptions", 1, serverSource);<a name="line.137"></a>
+<span class="sourceLineNo">131</span>    HELPER.assertCounter("sentBytes", 309, serverSource);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    HELPER.assertCounter("receivedBytes", 208, serverSource);<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>    mrpc.receivedRequest(105);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    mrpc.sentResponse(106);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    HELPER.assertCounter("requestSize_NumOps", 1, serverSource);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    HELPER.assertCounter("responseSize_NumOps", 1, serverSource);<a name="line.137"></a>
 <span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>    mrpc.exception(new RegionMovedException(ServerName.parseServerName("localhost:60020"), 100));<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    mrpc.exception(new RegionTooBusyException("Some region"));<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    mrpc.exception(new OutOfOrderScannerNextException());<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    mrpc.exception(new NotServingRegionException());<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    HELPER.assertCounter("exceptions.RegionMovedException", 1, serverSource);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    HELPER.assertCounter("exceptions.RegionTooBusyException", 1, serverSource);<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    HELPER.assertCounter("exceptions.OutOfOrderScannerNextException", 1, serverSource);<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    HELPER.assertCounter("exceptions.NotServingRegionException", 1, serverSource);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    HELPER.assertCounter("exceptions", 5, serverSource);<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>  @Test<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  public void testServerContextNameWithHostName() {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    String[] masterServerNames = { "master/node-xyz/10.19.250.253:16020",<a name="line.152"></a>
-<span class="sourceLineNo">153</span>        "master/node-regionserver-xyz/10.19.250.253:16020", "HMaster/node-xyz/10.19.250.253:16020",<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        "HMaster/node-regionserver-xyz/10.19.250.253:16020" };<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>    String[] regionServerNames = { "regionserver/node-xyz/10.19.250.253:16020",<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        "regionserver/node-master1-xyz/10.19.250.253:16020",<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        "HRegionserver/node-xyz/10.19.250.253:16020",<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        "HRegionserver/node-master1-xyz/10.19.250.253:16020" };<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>    MetricsHBaseServerSource masterSource = null;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    for (String serverName : masterServerNames) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      masterSource = new MetricsHBaseServer(serverName, new MetricsHBaseServerWrapperStub())<a name="line.163"></a>
-<span class="sourceLineNo">164</span>          .getMetricsSource();<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      assertEquals("master", masterSource.getMetricsContext());<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      assertEquals("Master,sub=IPC", masterSource.getMetricsJmxContext());<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      assertEquals("Master", masterSource.getMetricsName());<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span><a name="line.169"></a>
-<span class="sourceLineNo">170</span>    MetricsHBaseServerSource rsSource = null;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    for (String serverName : regionServerNames) {<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      rsSource = new MetricsHBaseServer(serverName, new MetricsHBaseServerWrapperStub())<a name="line.172"></a>
-<span class="sourceLineNo">173</span>          .getMetricsSource();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>      assertEquals("regionserver", rsSource.getMetricsContext());<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      assertEquals("RegionServer,sub=IPC", rsSource.getMetricsJmxContext());<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      assertEquals("RegionServer", rsSource.getMetricsName());<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span>}<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">139</span>    mrpc.exception(null);<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    HELPER.assertCounter("exceptions", 1, serverSource);<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>    mrpc.exception(new RegionMovedException(ServerName.parseServerName("localhost:60020"), 100));<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    mrpc.exception(new RegionTooBusyException("Some region"));<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    mrpc.exception(new OutOfOrderScannerNextException());<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    mrpc.exception(new NotServingRegionException());<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    HELPER.assertCounter("exceptions.RegionMovedException", 1, serverSource);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    HELPER.assertCounter("exceptions.RegionTooBusyException", 1, serverSource);<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    HELPER.assertCounter("exceptions.OutOfOrderScannerNextException", 1, serverSource);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    HELPER.assertCounter("exceptions.NotServingRegionException", 1, serverSource);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    HELPER.assertCounter("exceptions", 5, serverSource);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>  @Test<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  public void testServerContextNameWithHostName() {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    String[] masterServerNames = { "master/node-xyz/10.19.250.253:16020",<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        "master/node-regionserver-xyz/10.19.250.253:16020", "HMaster/node-xyz/10.19.250.253:16020",<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        "HMaster/node-regionserver-xyz/10.19.250.253:16020" };<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>    String[] regionServerNames = { "regionserver/node-xyz/10.19.250.253:16020",<a name="line.159"></a>
+<span class="sourceLineNo">160</span>        "regionserver/node-master1-xyz/10.19.250.253:16020",<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        "HRegionserver/node-xyz/10.19.250.253:16020",<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        "HRegionserver/node-master1-xyz/10.19.250.253:16020" };<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span>    MetricsHBaseServerSource masterSource = null;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    for (String serverName : masterServerNames) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      masterSource = new MetricsHBaseServer(serverName, new MetricsHBaseServerWrapperStub())<a name="line.166"></a>
+<span class="sourceLineNo">167</span>          .getMetricsSource();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      assertEquals("master", masterSource.getMetricsContext());<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      assertEquals("Master,sub=IPC", masterSource.getMetricsJmxContext());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      assertEquals("Master", masterSource.getMetricsName());<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>    MetricsHBaseServerSource rsSource = null;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    for (String serverName : regionServerNames) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      rsSource = new MetricsHBaseServer(serverName, new MetricsHBaseServerWrapperStub())<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          .getMetricsSource();<a name="line.176"></a>
+<span class="sourceLineNo">177</span>      assertEquals("regionserver", rsSource.getMetricsContext());<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      assertEquals("RegionServer,sub=IPC", rsSource.getMetricsJmxContext());<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      assertEquals("RegionServer", rsSource.getMetricsName());<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<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><a name="line.183"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
index d404ed4..efc9af0 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html
@@ -211,40 +211,68 @@
 <span class="sourceLineNo">203</span>    assertNoopLimiter(quotaInfo.getTableLimiter(UNKNOWN_TABLE_NAME));<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>  private Quotas buildReqNumThrottle(final long limit) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    return Quotas.newBuilder()<a name="line.207"></a>
-<span class="sourceLineNo">208</span>            .setThrottle(Throttle.newBuilder()<a name="line.208"></a>
-<span class="sourceLineNo">209</span>              .setReqNum(ProtobufUtil.toTimedQuota(limit, TimeUnit.MINUTES, QuotaScope.MACHINE))<a name="line.209"></a>
-<span class="sourceLineNo">210</span>              .build())<a name="line.210"></a>
-<span class="sourceLineNo">211</span>            .build();<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>  private void assertThrottleException(final QuotaLimiter limiter, final int availReqs) {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    assertNoThrottleException(limiter, availReqs);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    try {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      limiter.checkQuota(1, 1);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      fail("Should have thrown ThrottlingException");<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    } catch (RpcThrottlingException e) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      // expected<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>  private void assertNoThrottleException(final QuotaLimiter limiter, final int availReqs) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    for (int i = 0; i &lt; availReqs; ++i) {<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      try {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>        limiter.checkQuota(1, 1);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      } catch (RpcThrottlingException e) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        fail("Unexpected ThrottlingException after " + i + " requests. limit=" + availReqs);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      limiter.grabQuota(1, 1);<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>  private void assertNoopLimiter(final QuotaLimiter limiter) {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    assertTrue(limiter == NoopQuotaLimiter.get());<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    assertNoThrottleException(limiter, 100);<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">206</span>  @Test(timeout = 60000)<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  public void testTableThrottleWithBatch() {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    final TableName TABLE_A = TableName.valueOf("TableA");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    final int TABLE_A_THROTTLE_1 = 3;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    final long LAST_UPDATE_1 = 10;<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    UserQuotaState quotaInfo = new UserQuotaState();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    assertEquals(0, quotaInfo.getLastUpdate());<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    assertTrue(quotaInfo.isBypass());<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>    // Add A table limiters<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    UserQuotaState otherQuotaState = new UserQuotaState(LAST_UPDATE_1);<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    otherQuotaState.setQuotas(TABLE_A, buildReqNumThrottle(TABLE_A_THROTTLE_1));<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    assertEquals(LAST_UPDATE_1, otherQuotaState.getLastUpdate());<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    assertFalse(otherQuotaState.isBypass());<a name="line.220"></a>
+<span class="sourceLineNo">221</span><a name="line.221"></a>
+<span class="sourceLineNo">222</span>    quotaInfo.update(otherQuotaState);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    assertEquals(LAST_UPDATE_1, quotaInfo.getLastUpdate());<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    assertFalse(quotaInfo.isBypass());<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    QuotaLimiter limiter = quotaInfo.getTableLimiter(TABLE_A);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>    try {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>      limiter.checkQuota(TABLE_A_THROTTLE_1 + 1, TABLE_A_THROTTLE_1 + 1, 0, 0);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      fail("Should have thrown RpcThrottlingException");<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    } catch (RpcThrottlingException e) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      // expected<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    }<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>  private Quotas buildReqNumThrottle(final long limit) {<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    return Quotas.newBuilder()<a name="line.235"></a>
+<span class="sourceLineNo">236</span>            .setThrottle(Throttle.newBuilder()<a name="line.236"></a>
+<span class="sourceLineNo">237</span>              .setReqNum(ProtobufUtil.toTimedQuota(limit, TimeUnit.MINUTES, QuotaScope.MACHINE))<a name="line.237"></a>
+<span class="sourceLineNo">238</span>              .build())<a name="line.238"></a>
+<span class="sourceLineNo">239</span>            .build();<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>  private void assertThrottleException(final QuotaLimiter limiter, final int availReqs) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    assertNoThrottleException(limiter, availReqs);<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    try {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      limiter.checkQuota(1, 1, 0, 0);<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      fail("Should have thrown RpcThrottlingException");<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    } catch (RpcThrottlingException e) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      // expected<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>  private void assertNoThrottleException(final QuotaLimiter limiter, final int availReqs) {<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    for (int i = 0; i &lt; availReqs; ++i) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      try {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        limiter.checkQuota(1, 1, 0, 0);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      } catch (RpcThrottlingException e) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        fail("Unexpected RpcThrottlingException after " + i + " requests. limit=" + availReqs);<a name="line.257"></a>
+<span class="sourceLineNo">258</span>      }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      limiter.grabQuota(1, 1, 0, 0);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  private void assertNoopLimiter(final QuotaLimiter limiter) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    assertTrue(limiter == NoopQuotaLimiter.get());<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    assertNoThrottleException(limiter, 100);<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.html
index 36fc09c..26af833 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.html
@@ -1586,7 +1586,7 @@
 <span class="sourceLineNo">1578</span>      .addStoreFlushes(StoreFlushDescriptor.newBuilder()<a name="line.1578"></a>
 <span class="sourceLineNo">1579</span>        .setFamilyName(UnsafeByteOperations.unsafeWrap(families[0]))<a name="line.1579"></a>
 <span class="sourceLineNo">1580</span>        .setStoreHomeDir("/store_home_dir")<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>        .addFlushOutput("/foo/baz/bar")<a name="line.1581"></a>
+<span class="sourceLineNo">1581</span>        .addFlushOutput("/foo/baz/123")<a name="line.1581"></a>
 <span class="sourceLineNo">1582</span>        .build())<a name="line.1582"></a>
 <span class="sourceLineNo">1583</span>      .build());<a name="line.1583"></a>
 <span class="sourceLineNo">1584</span>  }<a name="line.1584"></a>
@@ -1601,8 +1601,8 @@
 <span class="sourceLineNo">1593</span>      .setEncodedRegionName(<a name="line.1593"></a>
 <span class="sourceLineNo">1594</span>          UnsafeByteOperations.unsafeWrap(primaryRegion.getRegionInfo().getEncodedNameAsBytes()))<a name="line.1594"></a>
 <span class="sourceLineNo">1595</span>      .setFamilyName(UnsafeByteOperations.unsafeWrap(families[0]))<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>      .addCompactionInput("/foo")<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>      .addCompactionOutput("/bar")<a name="line.1597"></a>
+<span class="sourceLineNo">1596</span>      .addCompactionInput("/123")<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>      .addCompactionOutput("/456")<a name="line.1597"></a>
 <span class="sourceLineNo">1598</span>      .setStoreHomeDir("/store_home_dir")<a name="line.1598"></a>
 <span class="sourceLineNo">1599</span>      .setRegionName(UnsafeByteOperations.unsafeWrap(primaryRegion.getRegionInfo().getRegionName()))<a name="line.1599"></a>
 <span class="sourceLineNo">1600</span>      .build()<a name="line.1600"></a>
@@ -1625,7 +1625,7 @@
 <span class="sourceLineNo">1617</span>      .addStores(StoreDescriptor.newBuilder()<a name="line.1617"></a>
 <span class="sourceLineNo">1618</span>        .setFamilyName(UnsafeByteOperations.unsafeWrap(families[0]))<a name="line.1618"></a>
 <span class="sourceLineNo">1619</span>        .setStoreHomeDir("/store_home_dir")<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>        .addStoreFile("/foo")<a name="line.1620"></a>
+<span class="sourceLineNo">1620</span>        .addStoreFile("/123")<a name="line.1620"></a>
 <span class="sourceLineNo">1621</span>        .build())<a name="line.1621"></a>
 <span class="sourceLineNo">1622</span>      .build());<a name="line.1622"></a>
 <span class="sourceLineNo">1623</span>  }<a name="line.1623"></a>
@@ -1642,7 +1642,7 @@
 <span class="sourceLineNo">1634</span>      .addStores(StoreDescriptor.newBuilder()<a name="line.1634"></a>
 <span class="sourceLineNo">1635</span>        .setFamilyName(UnsafeByteOperations.unsafeWrap(families[0]))<a name="line.1635"></a>
 <span class="sourceLineNo">1636</span>        .setStoreHomeDir("/store_home_dir")<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>        .addStoreFile("/foo")<a name="line.1637"></a>
+<span class="sourceLineNo">1637</span>        .addStoreFile("/123")<a name="line.1637"></a>
 <span class="sourceLineNo">1638</span>        .build())<a name="line.1638"></a>
 <span class="sourceLineNo">1639</span>      .build());<a name="line.1639"></a>
 <span class="sourceLineNo">1640</span>  }<a name="line.1640"></a>


[16/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html b/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html
index af861b5..1f83c35 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/RpcScheduler.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -205,48 +205,66 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active general handler.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>abstract int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active priority handler.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>abstract int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active replication handler.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>
-<div class="block">Retrieves the number of active handler.</div>
+<div class="block">Retrieves the total number of active handler.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>abstract <a href="../../../../../org/apache/hadoop/hbase/ipc/CallQueueInfo.html" title="class in org.apache.hadoop.hbase.ipc">CallQueueInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getCallQueueInfo--">getCallQueueInfo</a></span>()</code>
 <div class="block">Get call queue information</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the general queue for metrics.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>abstract long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a></span>()</code>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped
  from general queue because RPC executor is under high load; returns 0 otherwise.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>abstract long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a></span>()</code>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were
@@ -254,49 +272,49 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
  in the period of overloade we serve last requests first); returns 0 otherwise.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getPriorityQueueLength--">getPriorityQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the priority queue for metrics.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getReadQueueLength--">getReadQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the read queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getReplicationQueueLength--">getReplicationQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the replication queue for metrics.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getScanQueueLength--">getScanQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>abstract int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getWriteQueueLength--">getWriteQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the write queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#init-org.apache.hadoop.hbase.ipc.RpcScheduler.Context-">init</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler.Context</a>&nbsp;context)</code>
 <div class="block">Does some quick initialization.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#start--">start</a></span>()</code>
 <div class="block">Prepares for request serving.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>abstract void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#stop--">stop</a></span>()</code>
 <div class="block">Stops serving new requests.</div>
@@ -477,7 +495,37 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li class="blockList">
 <h4>getActiveRpcHandlerCount</h4>
 <pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.81">getActiveRpcHandlerCount</a>()</pre>
-<div class="block">Retrieves the number of active handler.</div>
+<div class="block">Retrieves the total number of active handler.</div>
+</li>
+</ul>
+<a name="getActiveGeneralRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveGeneralRpcHandlerCount</h4>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.84">getActiveGeneralRpcHandlerCount</a>()</pre>
+<div class="block">Retrieves the number of active general handler.</div>
+</li>
+</ul>
+<a name="getActivePriorityRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActivePriorityRpcHandlerCount</h4>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.87">getActivePriorityRpcHandlerCount</a>()</pre>
+<div class="block">Retrieves the number of active priority handler.</div>
+</li>
+</ul>
+<a name="getActiveReplicationRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveReplicationRpcHandlerCount</h4>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.90">getActiveReplicationRpcHandlerCount</a>()</pre>
+<div class="block">Retrieves the number of active replication handler.</div>
 </li>
 </ul>
 <a name="getNumGeneralCallsDropped--">
@@ -486,7 +534,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumGeneralCallsDropped</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.87">getNumGeneralCallsDropped</a>()</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.96">getNumGeneralCallsDropped</a>()</pre>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped
  from general queue because RPC executor is under high load; returns 0 otherwise.</div>
 </li>
@@ -497,7 +545,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLifoModeSwitches</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.94">getNumLifoModeSwitches</a>()</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.103">getNumLifoModeSwitches</a>()</pre>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were
  picked from the tail of the queue (indicating adaptive LIFO mode, when
  in the period of overloade we serve last requests first); returns 0 otherwise.</div>
@@ -509,7 +557,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteQueueLength</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.97">getWriteQueueLength</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.106">getWriteQueueLength</a>()</pre>
 <div class="block">Retrieves length of the write queue for metrics when use RWQueueRpcExecutor.</div>
 </li>
 </ul>
@@ -519,7 +567,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadQueueLength</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.100">getReadQueueLength</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.109">getReadQueueLength</a>()</pre>
 <div class="block">Retrieves length of the read queue for metrics when use RWQueueRpcExecutor.</div>
 </li>
 </ul>
@@ -529,7 +577,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanQueueLength</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.103">getScanQueueLength</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.112">getScanQueueLength</a>()</pre>
 <div class="block">Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor.</div>
 </li>
 </ul>
@@ -539,7 +587,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveWriteRpcHandlerCount</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.106">getActiveWriteRpcHandlerCount</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.115">getActiveWriteRpcHandlerCount</a>()</pre>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </li>
 </ul>
@@ -549,7 +597,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveReadRpcHandlerCount</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.109">getActiveReadRpcHandlerCount</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.118">getActiveReadRpcHandlerCount</a>()</pre>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </li>
 </ul>
@@ -559,7 +607,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getActiveScanRpcHandlerCount</h4>
-<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.112">getActiveScanRpcHandlerCount</a>()</pre>
+<pre>public abstract&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html#line.121">getActiveScanRpcHandlerCount</a>()</pre>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html b/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
index c14c9ce..a4be0db 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.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};
+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 tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -255,48 +255,66 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active general handler.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active priority handler.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active replication handler.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>
-<div class="block">Retrieves the number of active handler.</div>
+<div class="block">Retrieves the total number of active handler.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ipc/CallQueueInfo.html" title="class in org.apache.hadoop.hbase.ipc">CallQueueInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getCallQueueInfo--">getCallQueueInfo</a></span>()</code>
 <div class="block">Get call queue information</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the general queue for metrics.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a></span>()</code>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped
  from general queue because RPC executor is under high load; returns 0 otherwise.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a></span>()</code>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were
@@ -304,55 +322,55 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
  in the period of overloade we serve last requests first); returns 0 otherwise.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getPriorityQueueLength--">getPriorityQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the priority queue for metrics.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getReadQueueLength--">getReadQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the read queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getReplicationQueueLength--">getReplicationQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the replication queue for metrics.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getScanQueueLength--">getScanQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getWriteQueueLength--">getWriteQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the write queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i14" 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/ipc/SimpleRpcScheduler.html#init-org.apache.hadoop.hbase.ipc.RpcScheduler.Context-">init</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler.Context</a>&nbsp;context)</code>
 <div class="block">Does some quick initialization.</div>
 </td>
 </tr>
-<tr id="i15" 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/ipc/SimpleRpcScheduler.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
 <div class="block">Resize call queues;</div>
 </td>
 </tr>
-<tr id="i16" 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/ipc/SimpleRpcScheduler.html#start--">start</a></span>()</code>
 <div class="block">Prepares for request serving.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<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/ipc/SimpleRpcScheduler.html#stop--">stop</a></span>()</code>
 <div class="block">Stops serving new requests.</div>
@@ -636,20 +654,65 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <h4>getActiveRpcHandlerCount</h4>
 <pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.187">getActiveRpcHandlerCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveRpcHandlerCount--">RpcScheduler</a></code></span></div>
-<div class="block">Retrieves the number of active handler.</div>
+<div class="block">Retrieves the total number of active handler.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></code></dd>
 </dl>
 </li>
 </ul>
+<a name="getActiveGeneralRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveGeneralRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.193">getActiveGeneralRpcHandlerCount</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveGeneralRpcHandlerCount--">RpcScheduler</a></code></span></div>
+<div class="block">Retrieves the number of active general handler.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActivePriorityRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActivePriorityRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.198">getActivePriorityRpcHandlerCount</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActivePriorityRpcHandlerCount--">RpcScheduler</a></code></span></div>
+<div class="block">Retrieves the number of active priority handler.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveReplicationRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveReplicationRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.203">getActiveReplicationRpcHandlerCount</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReplicationRpcHandlerCount--">RpcScheduler</a></code></span></div>
+<div class="block">Retrieves the number of active replication handler.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="getNumGeneralCallsDropped--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumGeneralCallsDropped</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.194">getNumGeneralCallsDropped</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.208">getNumGeneralCallsDropped</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getNumGeneralCallsDropped--">RpcScheduler</a></code></span></div>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped
  from general queue because RPC executor is under high load; returns 0 otherwise.</div>
@@ -665,7 +728,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLifoModeSwitches</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.199">getNumLifoModeSwitches</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.213">getNumLifoModeSwitches</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getNumLifoModeSwitches--">RpcScheduler</a></code></span></div>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were
  picked from the tail of the queue (indicating adaptive LIFO mode, when
@@ -682,7 +745,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.204">getWriteQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.218">getWriteQueueLength</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getWriteQueueLength--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves length of the write queue for metrics when use RWQueueRpcExecutor.</div>
 <dl>
@@ -697,7 +760,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.209">getReadQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.223">getReadQueueLength</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getReadQueueLength--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves length of the read queue for metrics when use RWQueueRpcExecutor.</div>
 <dl>
@@ -712,7 +775,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.214">getScanQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.228">getScanQueueLength</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getScanQueueLength--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor.</div>
 <dl>
@@ -727,7 +790,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveWriteRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.219">getActiveWriteRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.233">getActiveWriteRpcHandlerCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveWriteRpcHandlerCount--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 <dl>
@@ -742,7 +805,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveReadRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.224">getActiveReadRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.238">getActiveReadRpcHandlerCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReadRpcHandlerCount--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 <dl>
@@ -757,7 +820,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveScanRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.229">getActiveScanRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.243">getActiveScanRpcHandlerCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveScanRpcHandlerCount--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 <dl>
@@ -772,7 +835,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObs
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCallQueueInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/CallQueueInfo.html" title="class in org.apache.hadoop.hbase.ipc">CallQueueInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.234">getCallQueueInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/CallQueueInfo.html" title="class in org.apache.hadoop.hbase.ipc">CallQueueInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#line.248">getCallQueueInfo</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getCallQueueInfo--">RpcScheduler</a></code></span></div>
 <div class="block">Get call queue information</div>
 <dl>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
index eb945fb..ad40e69 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -197,8 +197,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/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 0185fb6..daea993 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -346,11 +346,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.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/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/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 </ul>
 </li>
 </ul>

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

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
index 6c14ab4..f77193d 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
@@ -177,7 +177,9 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;estimateWriteSize,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-long-long-">checkQuota</a></span>(long&nbsp;writeReqs,
+          long&nbsp;estimateWriteSize,
+          long&nbsp;readReqs,
           long&nbsp;estimateReadSize)</code>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 </td>
@@ -208,7 +210,9 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 </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/quotas/NoopQuotaLimiter.html#grabQuota-long-long-">grabQuota</a></span>(long&nbsp;writeSize,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#grabQuota-long-long-long-long-">grabQuota</a></span>(long&nbsp;writeReqs,
+         long&nbsp;writeSize,
+         long&nbsp;readReqs,
          long&nbsp;readSize)</code>
 <div class="block">Removes the specified write and read amount from the quota.</div>
 </td>
@@ -277,45 +281,53 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="checkQuota-long-long-">
+<a name="checkQuota-long-long-long-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>checkQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#line.38">checkQuota</a>(long&nbsp;estimateWriteSize,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#line.38">checkQuota</a>(long&nbsp;writeReqs,
+                       long&nbsp;estimateWriteSize,
+                       long&nbsp;readReqs,
                        long&nbsp;estimateReadSize)
                 throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">QuotaLimiter</a></code></span></div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-long-long-">QuotaLimiter</a></code></span></div>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-long-long-">checkQuota</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writeReqs</code> - the write requests that will be checked against the available quota</dd>
 <dd><code>estimateWriteSize</code> - the write size that will be checked against the available quota</dd>
+<dd><code>readReqs</code> - the read requests that will be checked against the available quota</dd>
 <dd><code>estimateReadSize</code> - the read size that will be checked against the available quota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough available resources to perform operation.</dd>
 </dl>
 </li>
 </ul>
-<a name="grabQuota-long-long-">
+<a name="grabQuota-long-long-long-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>grabQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#line.44">grabQuota</a>(long&nbsp;writeSize,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#line.44">grabQuota</a>(long&nbsp;writeReqs,
+                      long&nbsp;writeSize,
+                      long&nbsp;readReqs,
                       long&nbsp;readSize)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-">QuotaLimiter</a></code></span></div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-long-long-">QuotaLimiter</a></code></span></div>
 <div class="block">Removes the specified write and read amount from the quota.
  At this point the write and read amount will be an estimate,
  that will be later adjusted with a consumeWrite()/consumeRead() call.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-">grabQuota</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-long-long-">grabQuota</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writeReqs</code> - the write requests that will be removed from the current quota</dd>
 <dd><code>writeSize</code> - the write size that will be removed from the current quota</dd>
+<dd><code>readReqs</code> - the read requests that will be removed from the current quota</dd>
 <dd><code>readSize</code> - the read size that will be removed from the current quota</dd>
 </dl>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
index 38992fc..d390618 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/QuotaLimiter.html
@@ -129,7 +129,9 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;estimateWriteSize,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-long-long-">checkQuota</a></span>(long&nbsp;writeReqs,
+          long&nbsp;estimateWriteSize,
+          long&nbsp;readReqs,
           long&nbsp;estimateReadSize)</code>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 </td>
@@ -156,7 +158,9 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 </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/quotas/QuotaLimiter.html#grabQuota-long-long-">grabQuota</a></span>(long&nbsp;writeSize,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-long-long-">grabQuota</a></span>(long&nbsp;writeReqs,
+         long&nbsp;writeSize,
+         long&nbsp;readReqs,
          long&nbsp;readSize)</code>
 <div class="block">Removes the specified write and read amount from the quota.</div>
 </td>
@@ -180,39 +184,47 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="checkQuota-long-long-">
+<a name="checkQuota-long-long-long-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>checkQuota</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.38">checkQuota</a>(long&nbsp;estimateWriteSize,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.40">checkQuota</a>(long&nbsp;writeReqs,
+                long&nbsp;estimateWriteSize,
+                long&nbsp;readReqs,
                 long&nbsp;estimateReadSize)
          throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writeReqs</code> - the write requests that will be checked against the available quota</dd>
 <dd><code>estimateWriteSize</code> - the write size that will be checked against the available quota</dd>
+<dd><code>readReqs</code> - the read requests that will be checked against the available quota</dd>
 <dd><code>estimateReadSize</code> - the read size that will be checked against the available quota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough available resources to perform operation.</dd>
 </dl>
 </li>
 </ul>
-<a name="grabQuota-long-long-">
+<a name="grabQuota-long-long-long-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>grabQuota</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.49">grabQuota</a>(long&nbsp;writeSize,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.53">grabQuota</a>(long&nbsp;writeReqs,
+               long&nbsp;writeSize,
+               long&nbsp;readReqs,
                long&nbsp;readSize)</pre>
 <div class="block">Removes the specified write and read amount from the quota.
  At this point the write and read amount will be an estimate,
  that will be later adjusted with a consumeWrite()/consumeRead() call.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writeReqs</code> - the write requests that will be removed from the current quota</dd>
 <dd><code>writeSize</code> - the write size that will be removed from the current quota</dd>
+<dd><code>readReqs</code> - the read requests that will be removed from the current quota</dd>
 <dd><code>readSize</code> - the read size that will be removed from the current quota</dd>
 </dl>
 </li>
@@ -223,7 +235,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>consumeWrite</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.55">consumeWrite</a>(long&nbsp;size)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.59">consumeWrite</a>(long&nbsp;size)</pre>
 <div class="block">Removes or add back some write amount to the quota.
  (called at the end of an operation in case the estimate quota was off)</div>
 </li>
@@ -234,7 +246,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>consumeRead</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.61">consumeRead</a>(long&nbsp;size)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.65">consumeRead</a>(long&nbsp;size)</pre>
 <div class="block">Removes or add back some read amount to the quota.
  (called at the end of an operation in case the estimate quota was off)</div>
 </li>
@@ -245,7 +257,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>isBypass</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.64">isBypass</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.68">isBypass</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if the limiter is a noop</dd>
@@ -258,7 +270,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadAvailable</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.67">getReadAvailable</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.71">getReadAvailable</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of bytes available to read to avoid exceeding the quota</dd>
@@ -271,7 +283,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/quotas
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getWriteAvailable</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.70">getWriteAvailable</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/QuotaLimiter.html#line.74">getWriteAvailable</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of bytes available to write to avoid exceeding the quota</dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html b/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
index 9845708..75c5276 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html
@@ -201,8 +201,10 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-">checkQuota</a></span>(long&nbsp;writeSize,
-          long&nbsp;readSize)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-long-long-">checkQuota</a></span>(long&nbsp;writeReqs,
+          long&nbsp;estimateWriteSize,
+          long&nbsp;readReqs,
+          long&nbsp;estimateReadSize)</code>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 </td>
 </tr>
@@ -232,7 +234,9 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 </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/quotas/TimeBasedLimiter.html#grabQuota-long-long-">grabQuota</a></span>(long&nbsp;writeSize,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#grabQuota-long-long-long-long-">grabQuota</a></span>(long&nbsp;writeReqs,
+         long&nbsp;writeSize,
+         long&nbsp;readReqs,
          long&nbsp;readSize)</code>
 <div class="block">Removes the specified write and read amount from the quota.</div>
 </td>
@@ -392,45 +396,53 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
                                       org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota&nbsp;timedQuota)</pre>
 </li>
 </ul>
-<a name="checkQuota-long-long-">
+<a name="checkQuota-long-long-long-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>checkQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.113">checkQuota</a>(long&nbsp;writeSize,
-                       long&nbsp;readSize)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.113">checkQuota</a>(long&nbsp;writeReqs,
+                       long&nbsp;estimateWriteSize,
+                       long&nbsp;readReqs,
+                       long&nbsp;estimateReadSize)
                 throws <a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">QuotaLimiter</a></code></span></div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-long-long-">QuotaLimiter</a></code></span></div>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-long-long-">checkQuota</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>writeSize</code> - the write size that will be checked against the available quota</dd>
-<dd><code>readSize</code> - the read size that will be checked against the available quota</dd>
+<dd><code>writeReqs</code> - the write requests that will be checked against the available quota</dd>
+<dd><code>estimateWriteSize</code> - the write size that will be checked against the available quota</dd>
+<dd><code>readReqs</code> - the read requests that will be checked against the available quota</dd>
+<dd><code>estimateReadSize</code> - the read size that will be checked against the available quota</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough avialable resources to perform operation.</dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></code> - thrown if not enough available resources to perform operation.</dd>
 </dl>
 </li>
 </ul>
-<a name="grabQuota-long-long-">
+<a name="grabQuota-long-long-long-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>grabQuota</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.142">grabQuota</a>(long&nbsp;writeSize,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.145">grabQuota</a>(long&nbsp;writeReqs,
+                      long&nbsp;writeSize,
+                      long&nbsp;readReqs,
                       long&nbsp;readSize)</pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-">QuotaLimiter</a></code></span></div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-long-long-">QuotaLimiter</a></code></span></div>
 <div class="block">Removes the specified write and read amount from the quota.
  At this point the write and read amount will be an estimate,
  that will be later adjusted with a consumeWrite()/consumeRead() call.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-">grabQuota</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-long-long-">grabQuota</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
 <dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writeReqs</code> - the write requests that will be removed from the current quota</dd>
 <dd><code>writeSize</code> - the write size that will be removed from the current quota</dd>
+<dd><code>readReqs</code> - the read requests that will be removed from the current quota</dd>
 <dd><code>readSize</code> - the read size that will be removed from the current quota</dd>
 </dl>
 </li>
@@ -441,7 +453,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <ul class="blockList">
 <li class="blockList">
 <h4>consumeWrite</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.159">consumeWrite</a>(long&nbsp;size)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.162">consumeWrite</a>(long&nbsp;size)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#consumeWrite-long-">QuotaLimiter</a></code></span></div>
 <div class="block">Removes or add back some write amount to the quota.
  (called at the end of an operation in case the estimate quota was off)</div>
@@ -457,7 +469,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <ul class="blockList">
 <li class="blockList">
 <h4>consumeRead</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.165">consumeRead</a>(long&nbsp;size)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.168">consumeRead</a>(long&nbsp;size)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#consumeRead-long-">QuotaLimiter</a></code></span></div>
 <div class="block">Removes or add back some read amount to the quota.
  (called at the end of an operation in case the estimate quota was off)</div>
@@ -473,7 +485,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <ul class="blockList">
 <li class="blockList">
 <h4>isBypass</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.171">isBypass</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.174">isBypass</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#isBypass--">isBypass</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
@@ -488,7 +500,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteAvailable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.176">getWriteAvailable</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.179">getWriteAvailable</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#getWriteAvailable--">getWriteAvailable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
@@ -503,7 +515,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadAvailable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.181">getReadAvailable</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.184">getReadAvailable</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html#getReadAvailable--">getReadAvailable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></code></dd>
@@ -518,7 +530,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaLimiter.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.186">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#line.189">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>


[19/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 67a62c1..88750a0 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -284,7 +284,7 @@
 <td>3604</td>
 <td>0</td>
 <td>0</td>
-<td>15864</td></tr></table></div>
+<td>15859</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -6947,7 +6947,7 @@
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileInfo.java">org/apache/hadoop/hbase/regionserver/StoreFileInfo.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>23</td></tr>
+<td>18</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileManager.java">org/apache/hadoop/hbase/regionserver/StoreFileManager.java</a></td>
 <td>0</td>
@@ -10332,7 +10332,7 @@
 <tr class="a">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3831</td>
+<td>3826</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>misc</td>
@@ -52880,7 +52880,7 @@
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
-<td>195</td></tr></table></div>
+<td>210</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.ipc.HBaseRpcController.java">org/apache/hadoop/hbase/ipc/HBaseRpcController.java</h3>
 <table border="0" class="table table-striped">
@@ -54608,37 +54608,37 @@
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
-<td>90</td></tr>
+<td>93</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 35.</td>
-<td>153</td></tr>
+<td>156</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 35.</td>
-<td>154</td></tr>
+<td>157</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 35.</td>
-<td>157</td></tr>
+<td>160</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 35.</td>
-<td>158</td></tr>
+<td>161</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 35.</td>
-<td>159</td></tr></table></div>
+<td>162</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.ipc.TestSimpleRpcScheduler.java">org/apache/hadoop/hbase/ipc/TestSimpleRpcScheduler.java</h3>
 <table border="0" class="table table-striped">
@@ -78137,37 +78137,37 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>189</td></tr>
+<td>192</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>190</td></tr>
+<td>193</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>191</td></tr>
+<td>194</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>192</td></tr>
+<td>195</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>193</td></tr>
+<td>196</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>194</td></tr></table></div>
+<td>197</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.quotas.UserQuotaState.java">org/apache/hadoop/hbase/quotas/UserQuotaState.java</h3>
 <table border="0" class="table table-striped">
@@ -85844,137 +85844,107 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>178</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>179</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>180</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>181</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>182</td></tr>
+<td>212</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>197</td></tr>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td>486</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>471</td></tr>
+<td>500</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>485</td></tr>
+<td>549</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>534</td></tr>
+<td>550</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>535</td></tr>
+<td>552</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>537</td></tr>
+<td>555</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>540</td></tr>
+<td>556</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>541</td></tr>
+<td>557</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>542</td></tr>
+<td>560</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>545</td></tr>
+<td>561</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>546</td></tr>
+<td>562</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>547</td></tr>
+<td>565</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>550</td></tr>
+<td>566</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>551</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>552</td></tr></table></div>
+<td>567</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StoreFileManager.java">org/apache/hadoop/hbase/regionserver/StoreFileManager.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>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>
@@ -85983,31 +85953,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StoreFileReader.java">org/apache/hadoop/hbase/regionserver/StoreFileReader.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.KeyValue' import.</td>
 <td>39</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>469</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>489</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>
@@ -86016,67 +85986,67 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StoreFileScanner.java">org/apache/hadoop/hbase/regionserver/StoreFileScanner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.client.Scan' import.</td>
 <td>40</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>223</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>251</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>308</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>319</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>320</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>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>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>464</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>513</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -86085,85 +86055,85 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StoreFileWriter.java">org/apache/hadoop/hbase/regionserver/StoreFileWriter.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.KeyValue' import.</td>
 <td>40</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class StoreFileWriter should be declared as final.</td>
 <td>61</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>85</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'ctor def modifier' have incorrect indentation level 4, expected level should be 2.</td>
 <td>90</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>119</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>120</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>121</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>122</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>123</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>124</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>125</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>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>
@@ -86172,31 +86142,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StoreFlushContext.java">org/apache/hadoop/hbase/regionserver/StoreFlushContext.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>60</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>61</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>71</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>
@@ -86205,31 +86175,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StoreFlusher.java">org/apache/hadoop/hbase/regionserver/StoreFlusher.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.OptionalInt.</td>
 <td>25</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>77</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>78</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>
@@ -86238,145 +86208,145 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StoreScanner.java">org/apache/hadoop/hbase/regionserver/StoreScanner.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.KeyValue' import.</td>
 <td>36</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>'ctor def' child have incorrect indentation level 5, expected level should be 4.</td>
 <td>182</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>'ctor def' child have incorrect indentation level 5, expected level should be 4.</td>
 <td>183</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>225</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>369</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>370</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>373</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>508</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>509</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 189 lines (max allowed is 150).</td>
 <td>512</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>692</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>
 <td>Inner assignments should be avoided.</td>
 <td>799</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>820</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>940</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>941</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>942</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>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>959</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>961</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>1054</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1058</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1095</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>
@@ -86385,13 +86355,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StoreUtils.java">org/apache/hadoop/hbase/regionserver/StoreUtils.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>HideUtilityClassConstructor</td>
@@ -86400,25 +86370,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StorefileRefresherChore.java">org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.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.master.cleaner.TimeToLiveHFileCleaner' import.</td>
 <td>31</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>94</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>
@@ -86427,19 +86397,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StripeMultiFileWriter.java">org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.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.util.Bytes' import.</td>
 <td>34</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -86448,13 +86418,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StripeStoreConfig.java">org/apache/hadoop/hbase/regionserver/StripeStoreConfig.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>
@@ -86463,13 +86433,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StripeStoreEngine.java">org/apache/hadoop/hbase/regionserver/StripeStoreEngine.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>
@@ -86478,97 +86448,97 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StripeStoreFileManager.java">org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.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 'stripeEndRows' must be private and have accessor methods.</td>
 <td>95</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 'stripeFiles' must be private and have accessor methods.</td>
 <td>102</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 'level0Files' must be private and have accessor methods.</td>
 <td>104</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 'allFilesCached' must be private and have accessor methods.</td>
 <td>107</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>512</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>513</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>517</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>587</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>595</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>736</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>901</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>918</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>922</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>964</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>
@@ -86577,13 +86547,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.StripeStoreFlusher.java">org/apache/hadoop/hbase/regionserver/StripeStoreFlusher.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>
@@ -86592,79 +86562,79 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestAtomicOperation.java">org/apache/hadoop/hbase/regionserver/TestAtomicOperation.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>119</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>120</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>'&quot; The Universe, and Everything&quot;' have incorrect indentation level 4, expected level should be 6.</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>239</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>249</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>255</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>346</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>347</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>531</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>532</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>'ctor def rcurly' have incorrect indentation level 3, expected level should be 4.</td>
 <td>653</td></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>
@@ -86673,103 +86643,103 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestBlocksRead.java">org/apache/hadoop/hbase/regionserver/TestBlocksRead.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
 <td>Using the '.*' form of import should be avoided - org.junit.*.</td>
 <td>49</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 6, expected level should be one of the following: 4, 58.</td>
 <td>67</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>88</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>89</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>90</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>91</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>92</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>129</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 110).</td>
 <td>199</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 6, expected level should be 4.</td>
 <td>203</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>213</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>219</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>269</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>275</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>376</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -86778,37 +86748,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestBlocksScanned.java">org/apache/hadoop/hbase/regionserver/TestBlocksScanned.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call rparen' have incorrect indentation level 8, expected level should be 4.</td>
 <td>79</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method call rparen' have incorrect indentation level 8, expected level should be 4.</td>
 <td>95</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>114</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>114</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>
@@ -86817,25 +86787,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestBulkLoad.java">org/apache/hadoop/hbase/regionserver/TestBulkLoad.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 4, expected level should be one of the following: 12, 14.</td>
 <td>130</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: 12, 14.</td>
 <td>156</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>
@@ -86844,19 +86814,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCacheOnWriteInSchema.java">org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.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>coding</td>
 <td>MissingSwitchDefault</td>
 <td>switch without &quot;default&quot; clause.</td>
 <td>116</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>
@@ -86865,43 +86835,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCellFlatSet.java">org/apache/hadoop/hbase/regionserver/TestCellFlatSet.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>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>65</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>67</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>89</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
 <td>205</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>285</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>
@@ -86910,13 +86880,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCellSkipListSet.java">org/apache/hadoop/hbase/regionserver/TestCellSkipListSet.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>
@@ -86925,19 +86895,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestClearRegionBlockCache.java">org/apache/hadoop/hbase/regionserver/TestClearRegionBlockCache.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>'while' construct must use '{}'s.</td>
 <td>175</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
@@ -86946,43 +86916,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestColumnSeeking.java">org/apache/hadoop/hbase/regionserver/TestColumnSeeking.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>150</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>166</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>167</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>262</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>278</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
@@ -86991,19 +86961,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCompactSplitThread.java">org/apache/hadoop/hbase/regionserver/TestCompactSplitThread.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 - org.apache.hadoop.hbase.*.</td>
 <td>26</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -87012,103 +86982,103 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCompactingMemStore.java">org/apache/hadoop/hbase/regionserver/TestCompactingMemStore.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>95</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>129</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>130</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>170</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>190</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>216</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>278</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>317</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 5, expected level should be 6.</td>
 <td>340</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>653</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 6.</td>
 <td>872</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 8, expected level should be 4.</td>
 <td>873</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 4.</td>
 <td>874</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 6.</td>
 <td>875</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 4.</td>
 <td>876</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>
@@ -87117,103 +87087,103 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCompactingToCellFlatMapMemStore.java">org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.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>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>131</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>165</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>188</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>322</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>333</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>341</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>356</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>401</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>'lambda arguments' have incorrect indentation level 8, expected level should be 6.</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>'lambda arguments' have incorrect indentation level 8, expected level should be 6.</td>
 <td>405</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>421</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>'lambda arguments' have incorrect indentation level 8, expected level should be 6.</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>'lambda arguments' have incorrect indentation level 8, expected level should be 6.</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 103).</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>'lambda arguments' have incorrect indentation level 8, expected level should be 6.</td>
 <td>440</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>
@@ -87222,31 +87192,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCompaction.java">org/apache/hadoop/hbase/regionserver/TestCompaction.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>152</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
 <td>198</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>455</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>
@@ -87255,49 +87225,49 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCompactionState.java">org/apache/hadoop/hbase/regionserver/TestCompactionState.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>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>130</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>131</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>194</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>
@@ -87306,109 +87276,109 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestCompoundBloomFilter.java">org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.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>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>81</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 6, expected level should be one of the following: 4, 51.</td>
 <td>82</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 6, expected level should be one of the following: 4, 51.</td>
 <td>83</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>85</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>92</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 30.</td>
 <td>96</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>105</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 6, expected level should be one of the following: 4, 51.</td>
 <td>106</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 10 should have line break after.</td>
 <td>107</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>109</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 6, expected level should be one of the following: 4, 55.</td>
 <td>110</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 10 should have line break after.</td>
 <td>111</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>'for' construct must use '{}'s.</td>
 <td>117</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>Javadoc comment at column 33 has parse error. Missed HTML close tag 'number'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>127</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>'for' construct must use '{}'s.</td>
 <td>149</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>330</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>
@@ -87417,37 +87387,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestDateTieredCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicy.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 82.</td>
 <td>86</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 83.</td>
 <td>194</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'array initialization' child have incorrect indentation level 8, expected level should be one of the following: 6, 82.</td>
 <td>208</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>245</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>
@@ -87456,13 +87426,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestDateTieredCompactionPolicyOverflow.java">org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicyOverflow.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>
@@ -87471,109 +87441,109 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestDefaultMemStore.java">org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.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>159</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>169</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>235</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>236</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>294</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>507</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>526</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>565</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>819</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>859</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>902</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>976</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>1008</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>1018</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' should be on the previous line.</td>
 <td>1039</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>1086</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>
@@ -87582,13 +87552,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestDeleteMobTable.java">org/apache/hadoop/hbase/regionserver/TestDeleteMobTable.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>
@@ -87597,31 +87567,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestEndToEndSplitTransaction.java">org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 123).</td>
 <td>229</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 123).</td>
 <td>231</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>346</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -87630,13 +87600,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestFSErrorsExposed.java">org/apache/hadoop/hbase/regionserver/TestFSErrorsExposed.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>
@@ -87645,55 +87615,55 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestFailedAppendAndSync.java">org/apache/hadoop/hbase/regionserver/TestFailedAppendAndSync.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>MethodLength</td>
 <td>Method length is 154 lines (max allowed is 150).</td>
 <td>111</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 10, expected level should be 8.</td>
 <td>134</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 10, expected level should be 6.</td>
 <td>161</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>'class def rcurly' have incorrect indentation level 6, expected level should be 4.</td>
 <td>162</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>205</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>220</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>252</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>
@@ -87702,73 +87672,73 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestHMobStore.java">org/apache/hadoop/hbase/regionserver/TestHMobStore.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>121</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>212</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>247</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>291</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>337</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>381</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>471</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>472</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>483</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>484</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>
@@ -87777,325 +87747,325 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestHRegion.java">org/apache/hadoop/hbase/regionserver/TestHRegion.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>258</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>293</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>438</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>1401</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>'else' construct must use '{}'s.</td>
 <td>1403</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>1420</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>'else' construct must use '{}'s.</td>
 <td>1422</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>1740</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>1749</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>1754</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>1760</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>1767</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>1775</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>1780</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>1816</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>1823</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>1868</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>1875</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>2023</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>2099</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>2115</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>2126</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>2870</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>3588</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>3660</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>3661</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>3797</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>3798</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>'try' child have incorrect indentation level 10, expected level should be 8.</td>
 <td>3825</td></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>
 <td>Class PutThread should be declared as final.</td>
 <td>3836</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>4012</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>4080</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>4081</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>4165</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>4166</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>4213</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>4214</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>4251</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>4260</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>4261</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>4279</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>4312</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>4428</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>4515</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>4575</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>'for' construct must use '{}'s.</td>
 <td>4970</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 165 lines (max allowed is 150).</td>
 <td>5435</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>5925</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>5926</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>5941</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>5969</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>')' is preceded with whitespace.</td>
 <td>6088</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
@@ -88104,37 +88074,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestHRegionFileSystem.java">org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.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>280</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>286</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>292</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>325</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>
@@ -88143,19 +88113,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.TestHRegionInfo.java">org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 108).</td>
 <td>92</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>
@@ -88164,19 +88134,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.Tes

<TRUNCATED>

[18/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 2da7c60..e2f8b27 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -26,7 +26,7 @@ under the License.
     <copyright>&#169;2007 - 2018 The Apache Software Foundation</copyright>
     <item>
       <title>File: 3604,
-             Errors: 15864,
+             Errors: 15859,
              Warnings: 0,
              Infos: 0
       </title>
@@ -3065,7 +3065,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  23
+                  18
                 </td>
               </tr>
                           <tr>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 461e974..d32dc6e 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -440,7 +440,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 76564c8..64f6cd2 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -1105,7 +1105,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 6d9a8c7..e6384eb 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -313,7 +313,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index fa99e3e..87dab1b 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="20180420" />
+    <meta name="Date-Revision-yyyymmdd" content="20180421" />
     <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" />
@@ -969,7 +969,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-04-20</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-04-21</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 60dc3eb..ee70906 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3768,21 +3768,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Fri Apr 20 14:39:14 UTC 2018"</code></td>
+<td class="colLast"><code>"Sat Apr 21 14:39:09 UTC 2018"</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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"914de1141699142bce1486468a742233d9440b23"</code></td>
+<td class="colLast"><code>"46cb5dfa226892fd2580f26ce9ce77225bd7e67c"</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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"8a7d9057695428a69e4cd5d02ff0686c"</code></td>
+<td class="colLast"><code>"68b5fffa22b0b5090184aec884a7bdc1"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -10609,11 +10609,25 @@
 <td class="colLast"><code>"numCallsInGeneralQueue"</code></td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_GENERAL_HANDLER_DESC">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_GENERAL_HANDLER_DESC">NUM_ACTIVE_GENERAL_HANDLER_DESC</a></code></td>
+<td class="colLast"><code>"Number of active general rpc handlers."</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_GENERAL_HANDLER_NAME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_GENERAL_HANDLER_NAME">NUM_ACTIVE_GENERAL_HANDLER_NAME</a></code></td>
+<td class="colLast"><code>"numActiveGeneralHandler"</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_HANDLER_DESC">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_HANDLER_DESC">NUM_ACTIVE_HANDLER_DESC</a></code></td>
-<td class="colLast"><code>"Number of active rpc handlers."</code></td>
+<td class="colLast"><code>"Total number of active rpc handlers."</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_HANDLER_NAME">
@@ -10623,6 +10637,20 @@
 <td class="colLast"><code>"numActiveHandler"</code></td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_PRIORITY_HANDLER_DESC">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_PRIORITY_HANDLER_DESC">NUM_ACTIVE_PRIORITY_HANDLER_DESC</a></code></td>
+<td class="colLast"><code>"Number of active priority rpc handlers."</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_PRIORITY_HANDLER_NAME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_PRIORITY_HANDLER_NAME">NUM_ACTIVE_PRIORITY_HANDLER_NAME</a></code></td>
+<td class="colLast"><code>"numActivePriorityHandler"</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_READ_HANDLER_DESC">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
@@ -10637,6 +10665,20 @@
 <td class="colLast"><code>"numActiveReadHandler"</code></td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_REPLICATION_HANDLER_DESC">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_REPLICATION_HANDLER_DESC">NUM_ACTIVE_REPLICATION_HANDLER_DESC</a></code></td>
+<td class="colLast"><code>"Number of active replication rpc handlers."</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_REPLICATION_HANDLER_NAME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_REPLICATION_HANDLER_NAME">NUM_ACTIVE_REPLICATION_HANDLER_NAME</a></code></td>
+<td class="colLast"><code>"numActiveReplicationHandler"</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource.NUM_ACTIVE_SCAN_HANDLER_DESC">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index c2c0c99..57ff987 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -10702,13 +10702,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/NoopOperationQuota.html#checkQuota-int-int-int-">checkQuota(int, int, int)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/NoopOperationQuota.html" title="class in org.apache.hadoop.hbase.quotas">NoopOperationQuota</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-">checkQuota(long, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html" title="class in org.apache.hadoop.hbase.quotas">NoopQuotaLimiter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#checkQuota-long-long-long-long-">checkQuota(long, long, long, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html" title="class in org.apache.hadoop.hbase.quotas">NoopQuotaLimiter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/OperationQuota.html#checkQuota-int-int-int-">checkQuota(int, int, int)</a></span> - Method in interface org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a></dt>
 <dd>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-">checkQuota(long, long)</a></span> - Method in interface org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html#checkQuota-long-long-long-long-">checkQuota(long, long, long, long)</a></span> - Method in interface org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></dt>
 <dd>
 <div class="block">Checks if it is possible to execute the specified operation.</div>
 </dd>
@@ -10724,7 +10724,7 @@
 <dd>
 <div class="block">Check the quota for the current (rpc-context) user.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-">checkQuota(long, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html" title="class in org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#checkQuota-long-long-long-long-">checkQuota(long, long, long, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html" title="class in org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html#checkQuota--">checkQuota()</a></span> - Method in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSourceWALReader</a></dt>
 <dd>&nbsp;</dd>
@@ -33858,6 +33858,18 @@
 <dd>
 <div class="block">Return the active file name that contains the real data.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">FifoRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount()</a></span> - Method in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapperImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></dt>
+<dd>
+<div class="block">Retrieves the number of active general handler.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcExecutor.html#getActiveHandlerCount--">getActiveHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcExecutor.html" title="class in org.apache.hadoop.hbase.ipc">RpcExecutor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html#getActiveHandlerCount--">getActiveHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html" title="class in org.apache.hadoop.hbase.ipc">RWQueueRpcExecutor</a></dt>
@@ -33881,6 +33893,18 @@
 <div class="block">Converts a map of table to <a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicyEnforcement.html" title="interface in org.apache.hadoop.hbase.quotas"><code>SpaceViolationPolicyEnforcement</code></a>s into
  <a href="org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><code>SpaceViolationPolicy</code></a>s.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">FifoRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount()</a></span> - Method in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapperImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></dt>
+<dd>
+<div class="block">Retrieves the number of active priority handler.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html#getActiveProcIds--">getActiveProcIds()</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcExecutor.html#getActiveReadHandlerCount--">getActiveReadHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcExecutor.html" title="class in org.apache.hadoop.hbase.ipc">RpcExecutor</a></dt>
@@ -33899,6 +33923,18 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcScheduler</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">FifoRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount()</a></span> - Method in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapperImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></dt>
+<dd>
+<div class="block">Retrieves the number of active replication handler.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcScheduler</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">FifoRpcScheduler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount()</a></span> - Method in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerWrapper</a></dt>
@@ -33907,7 +33943,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></dt>
 <dd>
-<div class="block">Retrieves the number of active handler.</div>
+<div class="block">Retrieves the total number of active handler.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount()</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">SimpleRpcScheduler</a></dt>
 <dd>&nbsp;</dd>
@@ -53333,13 +53369,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html#grabGlobalCompletelyFreeBucket--">grabGlobalCompletelyFreeBucket()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#grabQuota-long-long-">grabQuota(long, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html" title="class in org.apache.hadoop.hbase.quotas">NoopQuotaLimiter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html#grabQuota-long-long-long-long-">grabQuota(long, long, long, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html" title="class in org.apache.hadoop.hbase.quotas">NoopQuotaLimiter</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-">grabQuota(long, long)</a></span> - Method in interface org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html#grabQuota-long-long-long-long-">grabQuota(long, long, long, long)</a></span> - Method in interface org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/QuotaLimiter.html" title="interface in org.apache.hadoop.hbase.quotas">QuotaLimiter</a></dt>
 <dd>
 <div class="block">Removes the specified write and read amount from the quota.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#grabQuota-long-long-">grabQuota(long, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html" title="class in org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html#grabQuota-long-long-long-long-">grabQuota(long, long, long, long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html" title="class in org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.html#grabTask-java.lang.String-">grabTask(String)</a></span> - Method in class org.apache.hadoop.hbase.coordination.<a href="org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.html" title="class in org.apache.hadoop.hbase.coordination">ZkSplitLogWorkerCoordination</a></dt>
 <dd>
@@ -76872,14 +76908,26 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/coprocessor/AsyncAggregationClient.html#nullToEmpty-byte:A-">nullToEmpty(byte[])</a></span> - Static method in class org.apache.hadoop.hbase.client.coprocessor.<a href="org/apache/hadoop/hbase/client/coprocessor/AsyncAggregationClient.html" title="class in org.apache.hadoop.hbase.client.coprocessor">AsyncAggregationClient</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_GENERAL_HANDLER_DESC">NUM_ACTIVE_GENERAL_HANDLER_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_GENERAL_HANDLER_NAME">NUM_ACTIVE_GENERAL_HANDLER_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_HANDLER_DESC">NUM_ACTIVE_HANDLER_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_HANDLER_NAME">NUM_ACTIVE_HANDLER_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_PRIORITY_HANDLER_DESC">NUM_ACTIVE_PRIORITY_HANDLER_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_PRIORITY_HANDLER_NAME">NUM_ACTIVE_PRIORITY_HANDLER_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_READ_HANDLER_DESC">NUM_ACTIVE_READ_HANDLER_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_READ_HANDLER_NAME">NUM_ACTIVE_READ_HANDLER_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_REPLICATION_HANDLER_DESC">NUM_ACTIVE_REPLICATION_HANDLER_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_REPLICATION_HANDLER_NAME">NUM_ACTIVE_REPLICATION_HANDLER_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_SCAN_HANDLER_DESC">NUM_ACTIVE_SCAN_HANDLER_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html#NUM_ACTIVE_SCAN_HANDLER_NAME">NUM_ACTIVE_SCAN_HANDLER_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html" title="interface in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSource</a></dt>
@@ -108074,6 +108122,10 @@ service.</div>
 <dd>
 <div class="block">Create a Store File Info from an HFileLink</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#StoreFileInfo-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.FileStatus-org.apache.hadoop.hbase.io.Reference-org.apache.hadoop.hbase.io.HFileLink-">StoreFileInfo(Configuration, FileSystem, FileStatus, Reference, HFileLink)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreFileInfo.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileInfo</a></dt>
+<dd>
+<div class="block">Create a Store File Info from an HFileLink and a Reference</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreEngine.html#storeFileManager">storeFileManager</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StoreEngine</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/StoreFileManager.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">StoreFileManager</span></a> - Interface in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/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 e6e17f6..0d6fb14 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -550,24 +550,24 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.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/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/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/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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/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/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/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/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/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
 </ul>
 </li>
 </ul>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/io/class-use/HFileLink.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/class-use/HFileLink.html b/devapidocs/org/apache/hadoop/hbase/io/class-use/HFileLink.html
index f14c429..e492bb5 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/class-use/HFileLink.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/class-use/HFileLink.html
@@ -183,6 +183,15 @@
 <div class="block">Create a Store File Info from an HFileLink</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#StoreFileInfo-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.FileStatus-org.apache.hadoop.hbase.io.Reference-org.apache.hadoop.hbase.io.HFileLink-">StoreFileInfo</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+             org.apache.hadoop.fs.FileSystem&nbsp;fs,
+             org.apache.hadoop.fs.FileStatus&nbsp;fileStatus,
+             <a href="../../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference,
+             <a href="../../../../../../org/apache/hadoop/hbase/io/HFileLink.html" title="class in org.apache.hadoop.hbase.io">HFileLink</a>&nbsp;link)</code>
+<div class="block">Create a Store File Info from an HFileLink and a Reference</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/io/class-use/Reference.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/class-use/Reference.html b/devapidocs/org/apache/hadoop/hbase/io/class-use/Reference.html
index 21fdbd6..266791b 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/class-use/Reference.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/class-use/Reference.html
@@ -297,6 +297,15 @@
 <div class="block">Create a Store File Info from an HFileLink</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFileInfo.html#StoreFileInfo-org.apache.hadoop.conf.Configuration-org.apache.hadoop.fs.FileSystem-org.apache.hadoop.fs.FileStatus-org.apache.hadoop.hbase.io.Reference-org.apache.hadoop.hbase.io.HFileLink-">StoreFileInfo</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+             org.apache.hadoop.fs.FileSystem&nbsp;fs,
+             org.apache.hadoop.fs.FileStatus&nbsp;fileStatus,
+             <a href="../../../../../../org/apache/hadoop/hbase/io/Reference.html" title="class in org.apache.hadoop.hbase.io">Reference</a>&nbsp;reference,
+             <a href="../../../../../../org/apache/hadoop/hbase/io/HFileLink.html" title="class in org.apache.hadoop.hbase.io">HFileLink</a>&nbsp;link)</code>
+<div class="block">Create a Store File Info from an HFileLink and a Reference</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/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 09bf819..1a0ab0b 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="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html b/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
index f4284c1..f002a4f 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -232,48 +232,66 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active general handler.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active priority handler.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></span>()</code>
+<div class="block">Retrieves the number of active replication handler.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>
-<div class="block">Retrieves the number of active handler.</div>
+<div class="block">Retrieves the total number of active handler.</div>
 </td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/ipc/CallQueueInfo.html" title="class in org.apache.hadoop.hbase.ipc">CallQueueInfo</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getCallQueueInfo--">getCallQueueInfo</a></span>()</code>
 <div class="block">Get call queue information</div>
 </td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the general queue for metrics.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a></span>()</code>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped
  from general queue because RPC executor is under high load; returns 0 otherwise.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a></span>()</code>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were
@@ -281,49 +299,49 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
  in the period of overloade we serve last requests first); returns 0 otherwise.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getPriorityQueueLength--">getPriorityQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the priority queue for metrics.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getReadQueueLength--">getReadQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the read queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getReplicationQueueLength--">getReplicationQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the replication queue for metrics.</div>
 </td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getScanQueueLength--">getScanQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#getWriteQueueLength--">getWriteQueueLength</a></span>()</code>
 <div class="block">Retrieves length of the write queue for metrics when use RWQueueRpcExecutor.</div>
 </td>
 </tr>
-<tr id="i14" 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/ipc/FifoRpcScheduler.html#init-org.apache.hadoop.hbase.ipc.RpcScheduler.Context-">init</a></span>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler.Context</a>&nbsp;context)</code>
 <div class="block">Does some quick initialization.</div>
 </td>
 </tr>
-<tr id="i15" 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/ipc/FifoRpcScheduler.html#start--">start</a></span>()</code>
 <div class="block">Prepares for request serving.</div>
 </td>
 </tr>
-<tr id="i16" 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/ipc/FifoRpcScheduler.html#stop--">stop</a></span>()</code>
 <div class="block">Stops serving new requests.</div>
@@ -546,20 +564,65 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <h4>getActiveRpcHandlerCount</h4>
 <pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.132">getActiveRpcHandlerCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveRpcHandlerCount--">RpcScheduler</a></code></span></div>
-<div class="block">Retrieves the number of active handler.</div>
+<div class="block">Retrieves the total number of active handler.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></code></dd>
 </dl>
 </li>
 </ul>
+<a name="getActiveGeneralRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveGeneralRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.137">getActiveGeneralRpcHandlerCount</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveGeneralRpcHandlerCount--">RpcScheduler</a></code></span></div>
+<div class="block">Retrieves the number of active general handler.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActivePriorityRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActivePriorityRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.142">getActivePriorityRpcHandlerCount</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActivePriorityRpcHandlerCount--">RpcScheduler</a></code></span></div>
+<div class="block">Retrieves the number of active priority handler.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveReplicationRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveReplicationRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.147">getActiveReplicationRpcHandlerCount</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReplicationRpcHandlerCount--">RpcScheduler</a></code></span></div>
+<div class="block">Retrieves the number of active replication handler.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc">RpcScheduler</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="getNumGeneralCallsDropped--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumGeneralCallsDropped</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.137">getNumGeneralCallsDropped</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.152">getNumGeneralCallsDropped</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getNumGeneralCallsDropped--">RpcScheduler</a></code></span></div>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped
  from general queue because RPC executor is under high load; returns 0 otherwise.</div>
@@ -575,7 +638,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLifoModeSwitches</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.142">getNumLifoModeSwitches</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.157">getNumLifoModeSwitches</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getNumLifoModeSwitches--">RpcScheduler</a></code></span></div>
 <div class="block">If CoDel-based RPC executors are used, retrieves the number of Calls that were
  picked from the tail of the queue (indicating adaptive LIFO mode, when
@@ -592,7 +655,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.147">getWriteQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.162">getWriteQueueLength</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getWriteQueueLength--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves length of the write queue for metrics when use RWQueueRpcExecutor.</div>
 <dl>
@@ -607,7 +670,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.152">getReadQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.167">getReadQueueLength</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getReadQueueLength--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves length of the read queue for metrics when use RWQueueRpcExecutor.</div>
 <dl>
@@ -622,7 +685,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.157">getScanQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.172">getScanQueueLength</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getScanQueueLength--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor.</div>
 <dl>
@@ -637,7 +700,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveWriteRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.162">getActiveWriteRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.177">getActiveWriteRpcHandlerCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveWriteRpcHandlerCount--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 <dl>
@@ -652,7 +715,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveReadRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.167">getActiveReadRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.182">getActiveReadRpcHandlerCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveReadRpcHandlerCount--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 <dl>
@@ -667,7 +730,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveScanRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.172">getActiveScanRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.187">getActiveScanRpcHandlerCount</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getActiveScanRpcHandlerCount--">RpcScheduler</a></code></span></div>
 <div class="block">Retrieves the number of active write rpc handler when use RWQueueRpcExecutor.</div>
 <dl>
@@ -682,7 +745,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" t
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCallQueueInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/CallQueueInfo.html" title="class in org.apache.hadoop.hbase.ipc">CallQueueInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.177">getCallQueueInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/CallQueueInfo.html" title="class in org.apache.hadoop.hbase.ipc">CallQueueInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html#line.192">getCallQueueInfo</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html#getCallQueueInfo--">RpcScheduler</a></code></span></div>
 <div class="block">Get call queue information</div>
 <dl>


[06/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html
index d6f672a..fd7ab7a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html
@@ -87,1949 +87,1951 @@
 <span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.filter.ParseFilter;<a name="line.79"></a>
 <span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.filter.PrefixFilter;<a name="line.80"></a>
 <span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.filter.WhileMatchFilter;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.thrift.TException;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.thrift.TProcessor;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TProtocol;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.thrift.server.THsHaServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.thrift.server.TServer;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServlet;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TServerSocket;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerTransport;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.Server;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.slf4j.Logger;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.slf4j.LoggerFactory;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>/**<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.149"></a>
-<span class="sourceLineNo">150</span> */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>@InterfaceAudience.Private<a name="line.151"></a>
-<span class="sourceLineNo">152</span>public class ThriftServerRunner implements Runnable {<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      "hbase.regionserver.thrift.server.type";<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * Amount of time in milliseconds before a server thread will timeout<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * applies only to TBoundedThreadPoolServer<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.http.HttpServerUtil;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.thrift.TException;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.thrift.TProcessor;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocol;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.thrift.server.THsHaServer;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServer;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.thrift.server.TServlet;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerSocket;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TServerTransport;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.Server;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.slf4j.Logger;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.slf4j.LoggerFactory;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>/**<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.150"></a>
+<span class="sourceLineNo">151</span> */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>@InterfaceAudience.Private<a name="line.152"></a>
+<span class="sourceLineNo">153</span>public class ThriftServerRunner implements Runnable {<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      "hbase.regionserver.thrift.server.type";<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<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>   * Amount of time in milliseconds before a server thread will timeout<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * applies only to TBoundedThreadPoolServer<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.189"></a>
 <span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /**<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * auth-int: authentication and integrity checking<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   * auth: authentication only<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   *<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   * This is used to authenticate the callers and support impersonation.<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public static final int HREGION_VERSION = 1;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  private final int listenPort;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private Configuration conf;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  volatile TServer tserver;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  volatile Server httpServer;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  private final Hbase.Iface handler;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  private final ThriftMetrics metrics;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  private final HBaseHandler hbaseHandler;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private final UserGroupInformation realUser;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  private SaslUtil.QualityOfProtection qop;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private String host;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  private final boolean securityEnabled;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private final boolean doAsEnabled;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /** An enum of server implementation selections */<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  enum ImplType {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    THREADED_SELECTOR(<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    final String option;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    final boolean isAlwaysFramed;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    final boolean canSpecifyBindIP;<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      this.option = option;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      this.serverClass = serverClass;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.249"></a>
-<span class="sourceLineNo">250</span>     *         {@link #values()}<a name="line.250"></a>
-<span class="sourceLineNo">251</span>     */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public String toString() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return "-" + option;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    String getDescription() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          serverClass.getSimpleName());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      if (isAlwaysFramed) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        sb.append(" This implies the framed transport.");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (this == DEFAULT) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        sb.append("This is the default.");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      OptionGroup group = new OptionGroup();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      for (ImplType t : values()) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      for (ImplType t : values()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (confType.equals(t.option)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          return t;<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>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      ImplType chosenType = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      int numChosen = 0;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      for (ImplType t : values()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        if (cmd.hasOption(t.option)) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          chosenType = t;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          ++numChosen;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      if (numChosen &lt; 1) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        LOG.info("Using default thrift server type");<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        chosenType = DEFAULT;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      } else if (numChosen &gt; 1) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        throw new AssertionError("Exactly one option out of " +<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          Arrays.toString(values()) + " has to be specified");<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      return serverClass.getSimpleName();<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>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      for (ImplType t : values()) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        if (!t.canSpecifyBindIP) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          l.add(t.simpleClassName());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      return l;<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>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    // login the server principal (if using secure Hadoop)<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (securityEnabled) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        "hbase.thrift.kerberos.principal", host);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      hbaseHandler, metrics, conf);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (strQop != null) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    doAsEnabled = conf.getBoolean(THRIFT_SUPPORT_PROXYUSER, false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    if (doAsEnabled) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      if (!conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        LOG.warn("Fail to enable the doAs feature. hbase.regionserver.thrift.http is not " +<a name="line.351"></a>
-<span class="sourceLineNo">352</span>                "configured ");<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>    if (qop != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      if (qop != QualityOfProtection.AUTHENTICATION &amp;&amp;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          qop != QualityOfProtection.INTEGRITY &amp;&amp;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>          qop != QualityOfProtection.PRIVACY) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        throw new IOException(String.format("Invalide %s: It must be one of %s, %s, or %s.",<a name="line.359"></a>
-<span class="sourceLineNo">360</span>                              THRIFT_QOP_KEY,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>                              QualityOfProtection.AUTHENTICATION.name(),<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                              QualityOfProtection.INTEGRITY.name(),<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                              QualityOfProtection.PRIVACY.name()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      checkHttpSecurity(qop, conf);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      if (!securityEnabled) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        throw new IOException("Thrift server must"<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          + " run in secure mode to support authentication");<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><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private void checkHttpSecurity(QualityOfProtection qop, Configuration conf) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (qop == QualityOfProtection.PRIVACY &amp;&amp;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        conf.getBoolean(USE_HTTP_CONF_KEY, false) &amp;&amp;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        !conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      throw new IllegalArgumentException("Thrift HTTP Server's QoP is privacy, but " +<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          THRIFT_SSL_ENABLED + " is false");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Runs the Thrift server<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void run() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    realUser.doAs(new PrivilegedAction&lt;Object&gt;() {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      @Override<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      public Object run() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          pauseMonitor.start();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>          if (conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>            setupHTTPServer();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>            httpServer.start();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>            httpServer.join();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          } else {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>            setupServer();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            tserver.serve();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>          }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        } catch (Exception e) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.error(HBaseMarkers.FATAL, "Cannot run ThriftServer", e);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          // Crash the process if the ThriftServer is not running<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          System.exit(-1);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        return null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    });<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void shutdown() {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    if (pauseMonitor != null) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      pauseMonitor.stop();<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    if (tserver != null) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      tserver.stop();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      tserver = null;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    if (httpServer != null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      try {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        httpServer.stop();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        httpServer = null;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      } catch (Exception e) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        LOG.error("Problem encountered in shutting down HTTP server " + e.getCause());<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      httpServer = null;<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><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private void setupHTTPServer() throws IOException {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    TProcessor processor = new Hbase.Processor&lt;&gt;(handler);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    TServlet thriftHttpServlet = new ThriftHttpServlet(processor, protocolFactory, realUser,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        conf, hbaseHandler, securityEnabled, doAsEnabled);<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    // Set the default max thread number to 100 to limit<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    // the number of concurrent requests so that Thrfit HTTP server doesn't OOM easily.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    // Jetty set the default max thread number to 250, if we don't set it.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    //<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Our default min thread number 2 is the same as that used by Jetty.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    int minThreads = conf.getInt(HTTP_MIN_THREADS, 2);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    int maxThreads = conf.getInt(HTTP_MAX_THREADS, 100);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    QueuedThreadPool threadPool = new QueuedThreadPool(maxThreads);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    threadPool.setMinThreads(minThreads);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    httpServer = new Server(threadPool);<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>    // Context handler<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    ServletContextHandler ctxHandler = new ServletContextHandler(httpServer, "/",<a name="line.448"></a>
-<span class="sourceLineNo">449</span>            ServletContextHandler.SESSIONS);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    ctxHandler.addServlet(new ServletHolder(thriftHttpServlet), "/*");<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // set up Jetty and run the embedded server<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    HttpConfiguration httpConfig = new HttpConfiguration();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    httpConfig.setSecureScheme("https");<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    httpConfig.setSecurePort(listenPort);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    httpConfig.setHeaderCacheSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    httpConfig.setRequestHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    httpConfig.setResponseHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    httpConfig.setSendServerVersion(false);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    httpConfig.setSendDateHeader(false);<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ServerConnector serverConnector;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    if(conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      httpsConfig.addCustomizer(new SecureRequestCustomizer());<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>      SslContextFactory sslCtxFactory = new SslContextFactory();<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      String keystore = conf.get(THRIFT_SSL_KEYSTORE_STORE);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String password = HBaseConfiguration.getPassword(conf,<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          THRIFT_SSL_KEYSTORE_PASSWORD, null);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      String keyPassword = HBaseConfiguration.getPassword(conf,<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          THRIFT_SSL_KEYSTORE_KEYPASSWORD, password);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      sslCtxFactory.setKeyStorePath(keystore);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      sslCtxFactory.setKeyStorePassword(password);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      sslCtxFactory.setKeyManagerPassword(keyPassword);<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      String[] excludeCiphers = conf.getStrings(<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          THRIFT_SSL_EXCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      if (excludeCiphers.length != 0) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        sslCtxFactory.setExcludeCipherSuites(excludeCiphers);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      String[] includeCiphers = conf.getStrings(<a name="line.482"></a>
-<span class="sourceLineNo">483</span>          THRIFT_SSL_INCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      if (includeCiphers.length != 0) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        sslCtxFactory.setIncludeCipherSuites(includeCiphers);<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>      // Disable SSLv3 by default due to "Poodle" Vulnerability - CVE-2014-3566<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      String[] excludeProtocols = conf.getStrings(<a name="line.489"></a>
-<span class="sourceLineNo">490</span>          THRIFT_SSL_EXCLUDE_PROTOCOLS, "SSLv3");<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      if (excludeProtocols.length != 0) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        sslCtxFactory.setExcludeProtocols(excludeProtocols);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      String[] includeProtocols = conf.getStrings(<a name="line.494"></a>
-<span class="sourceLineNo">495</span>          THRIFT_SSL_INCLUDE_PROTOCOLS, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      if (includeProtocols.length != 0) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        sslCtxFactory.setIncludeProtocols(includeProtocols);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      serverConnector = new ServerConnector(httpServer,<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          new SslConnectionFactory(sslCtxFactory, HttpVersion.HTTP_1_1.toString()),<a name="line.501"></a>
-<span class="sourceLineNo">502</span>          new HttpConnectionFactory(httpsConfig));<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    } else {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      serverConnector = new ServerConnector(httpServer, new HttpConnectionFactory(httpConfig));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    serverConnector.setPort(listenPort);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    String host = getBindAddress(conf).getHostAddress();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    serverConnector.setHost(host);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    httpServer.addConnector(serverConnector);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    httpServer.setStopAtShutdown(true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>    if (doAsEnabled) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      ProxyUsers.refreshSuperUserGroupsConfiguration(conf);<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>    LOG.info("Starting Thrift HTTP Server on " + Integer.toString(listenPort));<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  /**<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * Setting up the thrift TServer<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
-<span class="sourceLineNo">522</span>  private void setupServer() throws Exception {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    // Construct correct ProtocolFactory<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    TProtocolFactory protocolFactory = getProtocolFactory();<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>    final TProcessor p = new Hbase.Processor&lt;&gt;(handler);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    ImplType implType = ImplType.getServerImpl(conf);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    TProcessor processor = p;<a name="line.528"></a>
-<span class="sourceLineNo">529</span><a name="line.529"></a>
-<span class="sourceLineNo">530</span>    // Construct correct TransportFactory<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    TTransportFactory transportFactory;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    if (conf.getBoolean(FRAMED_CONF_KEY, false) || implType.isAlwaysFramed) {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (qop != null) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        throw new RuntimeException("Thrift server authentication"<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          + " doesn't work with framed transport yet");<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      transportFactory = new TFramedTransport.Factory(<a name="line.537"></a>
-<span class="sourceLineNo">538</span>          conf.getInt(MAX_FRAME_SIZE_CONF_KEY, 2)  * 1024 * 1024);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      LOG.debug("Using framed transport");<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    } else if (qop == null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      transportFactory = new TTransportFactory();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    } else {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      // Extract the name from the principal<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      String name = SecurityUtil.getUserFromPrincipal(<a name="line.544"></a>
-<span class="sourceLineNo">545</span>        conf.get("hbase.thrift.kerberos.principal"));<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      Map&lt;String, String&gt; saslProperties = SaslUtil.initSaslProperties(qop.name());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      TSaslServerTransport.Factory saslFactory = new TSaslServerTransport.Factory();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      saslFactory.addServerDefinition("GSSAPI", name, host, saslProperties,<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        new SaslGssCallbackHandler() {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          @Override<a name="line.550"></a>
-<span class="sourceLineNo">551</span>          public void handle(Callback[] callbacks)<a name="line.551"></a>
-<span class="sourceLineNo">552</span>              throws UnsupportedCallbackException {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>            AuthorizeCallback ac = null;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>            for (Callback callback : callbacks) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>              if (callback instanceof AuthorizeCallback) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                ac = (AuthorizeCallback) callback;<a name="line.556"></a>
-<span class="sourceLineNo">557</span>              } else {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                throw new UnsupportedCallbackException(callback,<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                    "Unrecognized SASL GSSAPI Callback");<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>            if (ac != null) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>              String authid = ac.getAuthenticationID();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>              String authzid = ac.getAuthorizationID();<a name="line.564"></a>
-<span class="sourceLineNo">565</span>              if (!authid.equals(authzid)) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                ac.setAuthorized(false);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>              } else {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>                ac.setAuthorized(true);<a name="line.568"></a>
-<span class="sourceLineNo">569</span>                String userName = SecurityUtil.getUserFromPrincipal(authzid);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>                LOG.info("Effective user: " + userName);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>                ac.setAuthorizedID(userName);<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>          }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>        });<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      transportFactory = saslFactory;<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Create a processor wrapper, to get the caller<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      processor = new TProcessor() {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        public boolean process(TProtocol inProt,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>            TProtocol outProt) throws TException {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>          TSaslServerTransport saslServerTransport =<a name="line.583"></a>
-<span class="sourceLineNo">584</span>            (TSaslServerTransport)inProt.getTransport();<a name="line.584"></a>
-<span class="sourceLineNo">585</span>          SaslServer saslServer = saslServerTransport.getSaslServer();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>          String principal = saslServer.getAuthorizationID();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>          hbaseHandler.setEffectiveUser(principal);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          return p.process(inProt, outProt);<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>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>    if (conf.get(BIND_CONF_KEY) != null &amp;&amp; !implType.canSpecifyBindIP) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      LOG.error("Server types " + Joiner.on(", ").join(<a name="line.594"></a>
-<span class="sourceLineNo">595</span>          ImplType.serversThatCannotSpecifyBindIP()) + " don't support IP " +<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          "address binding at the moment. See " +<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          "https://issues.apache.org/jira/browse/HBASE-2155 for details.");<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      throw new RuntimeException(<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          "-" + BIND_CONF_KEY + " not supported with " + implType);<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>    // Thrift's implementation uses '0' as a placeholder for 'use the default.'<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    int backlog = conf.getInt(BACKLOG_CONF_KEY, 0);<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (implType == ImplType.HS_HA || implType == ImplType.NONBLOCKING ||<a name="line.605"></a>
-<span class="sourceLineNo">606</span>        implType == ImplType.THREADED_SELECTOR) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(<a name="line.608"></a>
-<span class="sourceLineNo">609</span>          new InetSocketAddress(listenAddress, listenPort));<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span>      if (implType == ImplType.NONBLOCKING) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        TNonblockingServer.Args serverArgs =<a name="line.612"></a>
-<span class="sourceLineNo">613</span>            new TNonblockingServer.Args(serverTransport);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        serverArgs.processor(processor)<a name="line.614"></a>
-<span class="sourceLineNo">615</span>                  .transportFactory(transportFactory)<a name="line.615"></a>
-<span class="sourceLineNo">616</span>                  .protocolFactory(protocolFactory);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        tserver = new TNonblockingServer(serverArgs);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      } else if (implType == ImplType.HS_HA) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        THsHaServer.Args serverArgs = new THsHaServer.Args(serverTransport);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        ExecutorService executorService = createExecutor(<a name="line.621"></a>
-<span class="sourceLineNo">622</span>            callQueue, serverArgs.getMaxWorkerThreads(), serverArgs.getMaxWorkerThreads());<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        tserver = new THsHaServer(serverArgs);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else { // THREADED_SELECTOR<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        TThreadedSelectorServer.Args serverArgs =<a name="line.627"></a>
-<span class="sourceLineNo">628</span>            new HThreadedSelectorServerArgs(serverTransport, conf);<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        ExecutorService executorService = createExecutor(<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            callQueue, serverArgs.getWorkerThreads(), serverArgs.getWorkerThreads());<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.632"></a>
-<span class="sourceLineNo">633</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        tserver = new TThreadedSelectorServer(serverArgs);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      LOG.info("starting HBase " + implType.simpleClassName() +<a name="line.636"></a>
-<span class="sourceLineNo">637</span>          " server on " + Integer.toString(listenPort));<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    } else if (implType == ImplType.THREAD_POOL) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      // Thread pool server. Get the IP address to bind to.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      int readTimeout = conf.getInt(THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY,<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      TServerTransport serverTransport = new TServerSocket(<a name="line.643"></a>
-<span class="sourceLineNo">644</span>          new TServerSocket.ServerSocketTransportArgs().<a name="line.644"></a>
-<span class="sourceLineNo">645</span>              bindAddr(new InetSocketAddress(listenAddress, listenPort)).backlog(backlog).<a name="line.645"></a>
-<span class="sourceLineNo">646</span>              clientTimeout(readTimeout));<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>      TBoundedThreadPoolServer.Args serverArgs =<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          new TBoundedThreadPoolServer.Args(serverTransport, conf);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      serverArgs.processor(processor).transportFactory(transportFactory)<a name="line.650"></a>
-<span class="sourceLineNo">651</span>              .protocolFactory(protocolFactory);<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      LOG.info("starting " + ImplType.THREAD_POOL.simpleClassName() + " on "<a name="line.652"></a>
-<span class="sourceLineNo">653</span>          + listenAddress + ":" + Integer.toString(listenPort)<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          + " with readTimeout " + readTimeout + "ms; " + serverArgs);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      this.tserver = new TBoundedThreadPoolServer(serverArgs, metrics);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } else {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      throw new AssertionError("Unsupported Thrift server implementation: " +<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          implType.simpleClassName());<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>    // A sanity check that we instantiated the right type of server.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    if (tserver.getClass() != implType.serverClass) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      throw new AssertionError("Expected to create Thrift server class " +<a name="line.663"></a>
-<span class="sourceLineNo">664</span>          implType.serverClass.getName() + " but got " +<a name="line.664"></a>
-<span class="sourceLineNo">665</span>          tserver.getClass().getName());<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * auth-int: authentication and integrity checking<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * auth: authentication only<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   *<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * This is used to authenticate the callers and support impersonation.<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public static final int HREGION_VERSION = 1;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private final int listenPort;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private Configuration conf;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  volatile TServer tserver;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  volatile Server httpServer;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final Hbase.Iface handler;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  private final ThriftMetrics metrics;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  private final HBaseHandler hbaseHandler;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  private final UserGroupInformation realUser;<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  private SaslUtil.QualityOfProtection qop;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  private String host;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private final boolean securityEnabled;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  private final boolean doAsEnabled;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  /** An enum of server implementation selections */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  enum ImplType {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    THREADED_SELECTOR(<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    final String option;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    final boolean isAlwaysFramed;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    final boolean canSpecifyBindIP;<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.option = option;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      this.serverClass = serverClass;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.250"></a>
+<span class="sourceLineNo">251</span>     *         {@link #values()}<a name="line.251"></a>
+<span class="sourceLineNo">252</span>     */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    public String toString() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      return "-" + option;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    String getDescription() {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.259"></a>
+<span class="sourceLineNo">260</span>          serverClass.getSimpleName());<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      if (isAlwaysFramed) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        sb.append(" This implies the framed transport.");<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      if (this == DEFAULT) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        sb.append("This is the default.");<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      OptionGroup group = new OptionGroup();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      for (ImplType t : values()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      for (ImplType t : values()) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        if (confType.equals(t.option)) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>          return t;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      ImplType chosenType = null;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      int numChosen = 0;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      for (ImplType t : values()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        if (cmd.hasOption(t.option)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>          chosenType = t;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          ++numChosen;<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>      if (numChosen &lt; 1) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        LOG.info("Using default thrift server type");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        chosenType = DEFAULT;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      } else if (numChosen &gt; 1) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        throw new AssertionError("Exactly one option out of " +<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          Arrays.toString(values()) + " has to be specified");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      return serverClass.getSimpleName();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      for (ImplType t : values()) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        if (!t.canSpecifyBindIP) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>          l.add(t.simpleClassName());<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>      return l;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // login the server principal (if using secure Hadoop)<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (securityEnabled) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        "hbase.thrift.kerberos.principal", host);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      hbaseHandler, metrics, conf);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if (strQop != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.347"></a>
+<span 

<TRUNCATED>

[03/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html b/testdevapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html
index ba8e14f..75e6b86 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.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};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -153,57 +153,69 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveGeneralRpcHandlerCount--">getActiveGeneralRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActivePriorityRpcHandlerCount--">getActivePriorityRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveReadRpcHandlerCount--">getActiveReadRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveReplicationRpcHandlerCount--">getActiveReplicationRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveRpcHandlerCount--">getActiveRpcHandlerCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveScanRpcHandlerCount--">getActiveScanRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getActiveWriteRpcHandlerCount--">getActiveWriteRpcHandlerCount</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getGeneralQueueLength--">getGeneralQueueLength</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getNumGeneralCallsDropped--">getNumGeneralCallsDropped</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getNumLifoModeSwitches--">getNumLifoModeSwitches</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getNumOpenConnections--">getNumOpenConnections</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getPriorityQueueLength--">getPriorityQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getReadQueueLength--">getReadQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getReplicationQueueLength--">getReplicationQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getScanQueueLength--">getScanQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getTotalQueueSize--">getTotalQueueSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#getWriteQueueLength--">getWriteQueueLength</a></span>()</code>&nbsp;</td>
 </tr>
@@ -324,13 +336,52 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 </dl>
 </li>
 </ul>
+<a name="getActiveGeneralRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveGeneralRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.53">getActiveGeneralRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getActiveGeneralRpcHandlerCount</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActivePriorityRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActivePriorityRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.58">getActivePriorityRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getActivePriorityRpcHandlerCount</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveReplicationRpcHandlerCount--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveReplicationRpcHandlerCount</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.63">getActiveReplicationRpcHandlerCount</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getActiveReplicationRpcHandlerCount</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
+</dl>
+</li>
+</ul>
 <a name="getNumGeneralCallsDropped--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumGeneralCallsDropped</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.53">getNumGeneralCallsDropped</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.68">getNumGeneralCallsDropped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getNumGeneralCallsDropped</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
@@ -343,7 +394,7 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLifoModeSwitches</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.58">getNumLifoModeSwitches</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.73">getNumLifoModeSwitches</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getNumLifoModeSwitches</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
@@ -356,7 +407,7 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.63">getWriteQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.78">getWriteQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getWriteQueueLength</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
@@ -369,7 +420,7 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.68">getReadQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.83">getReadQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getReadQueueLength</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
@@ -382,7 +433,7 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanQueueLength</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.73">getScanQueueLength</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.88">getScanQueueLength</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getScanQueueLength</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
@@ -395,7 +446,7 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveWriteRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.78">getActiveWriteRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.93">getActiveWriteRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getActiveWriteRpcHandlerCount</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
@@ -408,7 +459,7 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getActiveReadRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.83">getActiveReadRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.98">getActiveReadRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getActiveReadRpcHandlerCount</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>
@@ -421,7 +472,7 @@ implements org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getActiveScanRpcHandlerCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.88">getActiveScanRpcHandlerCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperStub.html#line.103">getActiveScanRpcHandlerCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code>getActiveScanRpcHandlerCount</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.ipc.MetricsHBaseServerWrapper</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html b/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html
index 6113025..561ae13 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html
@@ -281,7 +281,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testSourceMethods</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html#line.89">testSourceMethods</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html#line.92">testSourceMethods</a>()</pre>
 <div class="block">Test to make sure that all the actively called method on MetricsHBaseServer work.</div>
 </li>
 </ul>
@@ -291,7 +291,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testServerContextNameWithHostName</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html#line.151">testServerContextNameWithHostName</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/ipc/TestRpcMetrics.html#line.154">testServerContextNameWithHostName</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/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 f6a23c1..80d399d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -569,14 +569,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<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/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.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/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>
+<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/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
index a1c9b1d..28973e0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
@@ -81,14 +81,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
+<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;)
+<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.procedure.ProcedureManager

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaState.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaState.html b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaState.html
index 8f98ce0..aba0c47 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaState.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestQuotaState.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};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -211,6 +211,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaState.html#testSimpleQuotaStateOperation--">testSimpleQuotaStateOperation</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/TestQuotaState.html#testTableThrottleWithBatch--">testTableThrottleWithBatch</a></span>()</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -330,13 +334,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.150">testQuotaStateUpdateTableThrottle</a>()</pre>
 </li>
 </ul>
+<a name="testTableThrottleWithBatch--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testTableThrottleWithBatch</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.207">testTableThrottleWithBatch</a>()</pre>
+</li>
+</ul>
 <a name="buildReqNumThrottle-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>buildReqNumThrottle</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.206">buildReqNumThrottle</a>(long&nbsp;limit)</pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.234">buildReqNumThrottle</a>(long&nbsp;limit)</pre>
 </li>
 </ul>
 <a name="assertThrottleException-org.apache.hadoop.hbase.quotas.QuotaLimiter-int-">
@@ -345,7 +358,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assertThrottleException</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.214">assertThrottleException</a>(org.apache.hadoop.hbase.quotas.QuotaLimiter&nbsp;limiter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.242">assertThrottleException</a>(org.apache.hadoop.hbase.quotas.QuotaLimiter&nbsp;limiter,
                                      int&nbsp;availReqs)</pre>
 </li>
 </ul>
@@ -355,7 +368,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>assertNoThrottleException</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.224">assertNoThrottleException</a>(org.apache.hadoop.hbase.quotas.QuotaLimiter&nbsp;limiter,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.252">assertNoThrottleException</a>(org.apache.hadoop.hbase.quotas.QuotaLimiter&nbsp;limiter,
                                        int&nbsp;availReqs)</pre>
 </li>
 </ul>
@@ -365,7 +378,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>assertNoopLimiter</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.235">assertNoopLimiter</a>(org.apache.hadoop.hbase.quotas.QuotaLimiter&nbsp;limiter)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestQuotaState.html#line.263">assertNoopLimiter</a>(org.apache.hadoop.hbase.quotas.QuotaLimiter&nbsp;limiter)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/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 d11e137..aa1bdd4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -657,8 +657,8 @@
 <ul>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
 </ul>
 </li>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html b/testdevapidocs/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
index a844e6e..4fc2997 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10};
+var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.58">TestThriftHttpServer</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.61">TestThriftHttpServer</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Start the HBase Thrift HTTP server on a random port through the command-line
  interface and talk to it from client side.</div>
@@ -205,37 +205,42 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </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/thrift/TestThriftHttpServer.html#runThriftServer-int-">runThriftServer</a></span>(int&nbsp;customHeaderSize)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#checkHttpMethods-java.lang.String-">checkHttpMethods</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;url)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#runThriftServer-int-">runThriftServer</a></span>(int&nbsp;customHeaderSize)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#startHttpServerThread-java.lang.String:A-">startHttpServerThread</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>&nbsp;</td>
 </tr>
-<tr id="i3" 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/thrift/TestThriftHttpServer.html#stopHttpServerThread--">stopHttpServerThread</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#talkToThriftServer-int-">talkToThriftServer</a></span>(int&nbsp;customHeaderSize)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#talkToThriftServer-java.lang.String-int-">talkToThriftServer</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;url,
+                  int&nbsp;customHeaderSize)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#tearDownAfterClass--">tearDownAfterClass</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<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/thrift/TestThriftHttpServer.html#testExceptionThrownWhenMisConfigured--">testExceptionThrownWhenMisConfigured</a></span>()</code>&nbsp;</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/thrift/TestThriftHttpServer.html#testRunThriftServer--">testRunThriftServer</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/thrift/TestThriftHttpServer.html#testRunThriftServerWithHeaderBufferLength--">testRunThriftServerWithHeaderBufferLength</a></span>()</code>&nbsp;</td>
 </tr>
@@ -267,7 +272,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.61">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.64">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -276,7 +281,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.64">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.67">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -285,7 +290,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.67">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.70">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="httpServerThread">
@@ -294,7 +299,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>httpServerThread</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.70">httpServerThread</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.73">httpServerThread</a></pre>
 </li>
 </ul>
 <a name="httpServerException">
@@ -303,7 +308,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>httpServerException</h4>
-<pre>private volatile&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.71">httpServerException</a></pre>
+<pre>private volatile&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.74">httpServerException</a></pre>
 </li>
 </ul>
 <a name="clientSideException">
@@ -312,7 +317,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>clientSideException</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.73">clientSideException</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.76">clientSideException</a></pre>
 </li>
 </ul>
 <a name="thriftServer">
@@ -321,7 +326,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>thriftServer</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.thrift.ThriftServer <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.75">thriftServer</a></pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.thrift.ThriftServer <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.78">thriftServer</a></pre>
 </li>
 </ul>
 <a name="port">
@@ -330,7 +335,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>port</h4>
-<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.76">port</a></pre>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.79">port</a></pre>
 </li>
 </ul>
 <a name="exception">
@@ -339,7 +344,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>exception</h4>
-<pre>public&nbsp;org.junit.rules.ExpectedException <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.134">exception</a></pre>
+<pre>public&nbsp;org.junit.rules.ExpectedException <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.137">exception</a></pre>
 </li>
 </ul>
 <a name="tableCreated">
@@ -348,7 +353,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>tableCreated</h4>
-<pre>private static volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.192">tableCreated</a></pre>
+<pre>private static volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.206">tableCreated</a></pre>
 </li>
 </ul>
 </li>
@@ -365,7 +370,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestThriftHttpServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.58">TestThriftHttpServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.61">TestThriftHttpServer</a>()</pre>
 </li>
 </ul>
 </li>
@@ -382,7 +387,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.79">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.82">setUpBeforeClass</a>()
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -396,7 +401,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.89">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.92">tearDownAfterClass</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -410,7 +415,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testExceptionThrownWhenMisConfigured</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.95">testExceptionThrownWhenMisConfigured</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.98">testExceptionThrownWhenMisConfigured</a>()
                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -424,7 +429,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startHttpServerThread</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.114">startHttpServerThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.117">startHttpServerThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
 </li>
 </ul>
 <a name="testRunThriftServerWithHeaderBufferLength--">
@@ -433,7 +438,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testRunThriftServerWithHeaderBufferLength</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.137">testRunThriftServerWithHeaderBufferLength</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.140">testRunThriftServerWithHeaderBufferLength</a>()
                                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -447,7 +452,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testRunThriftServer</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.153">testRunThriftServer</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.156">testRunThriftServer</a>()
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -461,7 +466,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>runThriftServer</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.157">runThriftServer</a>(int&nbsp;customHeaderSize)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.160">runThriftServer</a>(int&nbsp;customHeaderSize)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -469,13 +474,28 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
-<a name="talkToThriftServer-int-">
+<a name="checkHttpMethods-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkHttpMethods</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.197">checkHttpMethods</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;url)
+                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="talkToThriftServer-java.lang.String-int-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>talkToThriftServer</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.194">talkToThriftServer</a>(int&nbsp;customHeaderSize)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.208">talkToThriftServer</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;url,
+                                int&nbsp;customHeaderSize)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -489,7 +509,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stopHttpServerThread</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.221">stopHttpServerThread</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/TestThriftHttpServer.html#line.234">stopHttpServerThread</a>()
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html
index f24edeb..29f79be 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html
@@ -33,44 +33,42 @@
 <span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.26"></a>
 <span class="sourceLineNo">027</span>import org.junit.ClassRule;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.junit.Ignore;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.junit.Test;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.junit.experimental.categories.Category;<a name="line.30"></a>
+<span class="sourceLineNo">028</span>import org.junit.Test;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.experimental.categories.Category;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
 <span class="sourceLineNo">031</span><a name="line.31"></a>
-<span class="sourceLineNo">032</span><a name="line.32"></a>
-<span class="sourceLineNo">033</span>@Ignore // Disabled because flakey. See HBASE-20006.<a name="line.33"></a>
-<span class="sourceLineNo">034</span>@Category({LargeTests.class, ClientTests.class})<a name="line.34"></a>
-<span class="sourceLineNo">035</span>public class TestRestoreSnapshotFromClientWithRegionReplicas extends<a name="line.35"></a>
-<span class="sourceLineNo">036</span>    TestRestoreSnapshotFromClient {<a name="line.36"></a>
-<span class="sourceLineNo">037</span><a name="line.37"></a>
-<span class="sourceLineNo">038</span>  @ClassRule<a name="line.38"></a>
-<span class="sourceLineNo">039</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.39"></a>
-<span class="sourceLineNo">040</span>      HBaseClassTestRule.forClass(TestRestoreSnapshotFromClientWithRegionReplicas.class);<a name="line.40"></a>
-<span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>  @Override<a name="line.42"></a>
-<span class="sourceLineNo">043</span>  protected int getNumReplicas() {<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    return 3;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  @Test<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  public void testOnlineSnapshotAfterSplittingRegions() throws IOException, InterruptedException {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.49"></a>
-<span class="sourceLineNo">050</span>    RegionReplicaUtil.removeNonDefaultRegions(regionInfos);<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>    // Split a region<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    splitRegion(regionInfos.get(0));<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>    // Take a online snapshot<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    admin.snapshot(snapshotName1, tableName);<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>    // Clone the snapshot to another table<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    TableName clonedTableName = TableName.valueOf(name.getMethodName() + "-" +<a name="line.59"></a>
-<span class="sourceLineNo">060</span>        System.currentTimeMillis());<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    admin.cloneSnapshot(snapshotName1, clonedTableName);<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>    verifyRowCount(TEST_UTIL, clonedTableName, snapshot1Rows);<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  }<a name="line.64"></a>
-<span class="sourceLineNo">065</span>}<a name="line.65"></a>
+<span class="sourceLineNo">032</span>@Category({LargeTests.class, ClientTests.class})<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class TestRestoreSnapshotFromClientWithRegionReplicas extends<a name="line.33"></a>
+<span class="sourceLineNo">034</span>    TestRestoreSnapshotFromClient {<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  @ClassRule<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.37"></a>
+<span class="sourceLineNo">038</span>      HBaseClassTestRule.forClass(TestRestoreSnapshotFromClientWithRegionReplicas.class);<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  @Override<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  protected int getNumReplicas() {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    return 3;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  @Test<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  public void testOnlineSnapshotAfterSplittingRegions() throws IOException, InterruptedException {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    RegionReplicaUtil.removeNonDefaultRegions(regionInfos);<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>    // Split a region<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    splitRegion(regionInfos.get(0));<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>    // Take a online snapshot<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    admin.snapshot(snapshotName1, tableName);<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>    // Clone the snapshot to another table<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    TableName clonedTableName = TableName.valueOf(name.getMethodName() + "-" +<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        System.currentTimeMillis());<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    admin.cloneSnapshot(snapshotName1, clonedTableName);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>    verifyRowCount(TEST_UTIL, clonedTableName, snapshot1Rows);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>}<a name="line.63"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyFilterInitializer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyFilterInitializer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyFilterInitializer.html
index 5681a20..cbcaf55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyFilterInitializer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyFilterInitializer.html
@@ -613,21 +613,30 @@
 <span class="sourceLineNo">605</span>    myServer.stop();<a name="line.605"></a>
 <span class="sourceLineNo">606</span>  }<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>  @Test<a name="line.610"></a>
-<span class="sourceLineNo">611</span>  public void testNoCacheHeader() throws Exception {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>}<a name="line.622"></a>
+<span class="sourceLineNo">608</span>  @Test<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  public void testNoCacheHeader() throws Exception {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<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>  @Test<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  public void testHttpMethods() throws Exception {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    // HTTP TRACE method should be disabled for security<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    URL url = new URL(baseUrl, "/echo?a=b");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    conn.setRequestMethod("TRACE");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    conn.connect();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<a name="line.629"></a>
+<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>}<a name="line.631"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyServletFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyServletFilter.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyServletFilter.html
index 5681a20..cbcaf55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyServletFilter.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.DummyServletFilter.html
@@ -613,21 +613,30 @@
 <span class="sourceLineNo">605</span>    myServer.stop();<a name="line.605"></a>
 <span class="sourceLineNo">606</span>  }<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>  @Test<a name="line.610"></a>
-<span class="sourceLineNo">611</span>  public void testNoCacheHeader() throws Exception {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>}<a name="line.622"></a>
+<span class="sourceLineNo">608</span>  @Test<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  public void testNoCacheHeader() throws Exception {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<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>  @Test<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  public void testHttpMethods() throws Exception {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    // HTTP TRACE method should be disabled for security<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    URL url = new URL(baseUrl, "/echo?a=b");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    conn.setRequestMethod("TRACE");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    conn.connect();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<a name="line.629"></a>
+<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>}<a name="line.631"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoMapServlet.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoMapServlet.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoMapServlet.html
index 5681a20..cbcaf55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoMapServlet.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoMapServlet.html
@@ -613,21 +613,30 @@
 <span class="sourceLineNo">605</span>    myServer.stop();<a name="line.605"></a>
 <span class="sourceLineNo">606</span>  }<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>  @Test<a name="line.610"></a>
-<span class="sourceLineNo">611</span>  public void testNoCacheHeader() throws Exception {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>}<a name="line.622"></a>
+<span class="sourceLineNo">608</span>  @Test<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  public void testNoCacheHeader() throws Exception {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<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>  @Test<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  public void testHttpMethods() throws Exception {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    // HTTP TRACE method should be disabled for security<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    URL url = new URL(baseUrl, "/echo?a=b");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    conn.setRequestMethod("TRACE");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    conn.connect();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<a name="line.629"></a>
+<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>}<a name="line.631"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoServlet.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoServlet.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoServlet.html
index 5681a20..cbcaf55 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoServlet.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/http/TestHttpServer.EchoServlet.html
@@ -613,21 +613,30 @@
 <span class="sourceLineNo">605</span>    myServer.stop();<a name="line.605"></a>
 <span class="sourceLineNo">606</span>  }<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span><a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>  @Test<a name="line.610"></a>
-<span class="sourceLineNo">611</span>  public void testNoCacheHeader() throws Exception {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.612"></a>
-<span class="sourceLineNo">613</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.614"></a>
-<span class="sourceLineNo">615</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.615"></a>
-<span class="sourceLineNo">616</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.616"></a>
-<span class="sourceLineNo">617</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.617"></a>
-<span class="sourceLineNo">618</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.618"></a>
-<span class="sourceLineNo">619</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.619"></a>
-<span class="sourceLineNo">620</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<a name="line.620"></a>
-<span class="sourceLineNo">621</span>  }<a name="line.621"></a>
-<span class="sourceLineNo">622</span>}<a name="line.622"></a>
+<span class="sourceLineNo">608</span>  @Test<a name="line.608"></a>
+<span class="sourceLineNo">609</span>  public void testNoCacheHeader() throws Exception {<a name="line.609"></a>
+<span class="sourceLineNo">610</span>    URL url = new URL(baseUrl, "/echo?a=b&amp;c=d");<a name="line.610"></a>
+<span class="sourceLineNo">611</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.611"></a>
+<span class="sourceLineNo">612</span>    assertEquals(HttpURLConnection.HTTP_OK, conn.getResponseCode());<a name="line.612"></a>
+<span class="sourceLineNo">613</span>    assertEquals("no-cache", conn.getHeaderField("Cache-Control"));<a name="line.613"></a>
+<span class="sourceLineNo">614</span>    assertEquals("no-cache", conn.getHeaderField("Pragma"));<a name="line.614"></a>
+<span class="sourceLineNo">615</span>    assertNotNull(conn.getHeaderField("Expires"));<a name="line.615"></a>
+<span class="sourceLineNo">616</span>    assertNotNull(conn.getHeaderField("Date"));<a name="line.616"></a>
+<span class="sourceLineNo">617</span>    assertEquals(conn.getHeaderField("Expires"), conn.getHeaderField("Date"));<a name="line.617"></a>
+<span class="sourceLineNo">618</span>    assertEquals("DENY", conn.getHeaderField("X-Frame-Options"));<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>  @Test<a name="line.621"></a>
+<span class="sourceLineNo">622</span>  public void testHttpMethods() throws Exception {<a name="line.622"></a>
+<span class="sourceLineNo">623</span>    // HTTP TRACE method should be disabled for security<a name="line.623"></a>
+<span class="sourceLineNo">624</span>    // See https://www.owasp.org/index.php/Cross_Site_Tracing<a name="line.624"></a>
+<span class="sourceLineNo">625</span>    URL url = new URL(baseUrl, "/echo?a=b");<a name="line.625"></a>
+<span class="sourceLineNo">626</span>    HttpURLConnection conn = (HttpURLConnection) url.openConnection();<a name="line.626"></a>
+<span class="sourceLineNo">627</span>    conn.setRequestMethod("TRACE");<a name="line.627"></a>
+<span class="sourceLineNo">628</span>    conn.connect();<a name="line.628"></a>
+<span class="sourceLineNo">629</span>    assertEquals(HttpURLConnection.HTTP_FORBIDDEN, conn.getResponseCode());<a name="line.629"></a>
+<span class="sourceLineNo">630</span>  }<a name="line.630"></a>
+<span class="sourceLineNo">631</span>}<a name="line.631"></a>
 
 
 


[07/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html
index d6f672a..fd7ab7a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html
@@ -87,1949 +87,1951 @@
 <span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.filter.ParseFilter;<a name="line.79"></a>
 <span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.filter.PrefixFilter;<a name="line.80"></a>
 <span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.filter.WhileMatchFilter;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.thrift.TException;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.thrift.TProcessor;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TProtocol;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.thrift.server.THsHaServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.thrift.server.TServer;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServlet;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TServerSocket;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerTransport;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.Server;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.slf4j.Logger;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.slf4j.LoggerFactory;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>/**<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.149"></a>
-<span class="sourceLineNo">150</span> */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>@InterfaceAudience.Private<a name="line.151"></a>
-<span class="sourceLineNo">152</span>public class ThriftServerRunner implements Runnable {<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      "hbase.regionserver.thrift.server.type";<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * Amount of time in milliseconds before a server thread will timeout<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * applies only to TBoundedThreadPoolServer<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.http.HttpServerUtil;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.thrift.TException;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.thrift.TProcessor;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocol;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.thrift.server.THsHaServer;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServer;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.thrift.server.TServlet;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerSocket;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TServerTransport;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.Server;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.slf4j.Logger;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.slf4j.LoggerFactory;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>/**<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.150"></a>
+<span class="sourceLineNo">151</span> */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>@InterfaceAudience.Private<a name="line.152"></a>
+<span class="sourceLineNo">153</span>public class ThriftServerRunner implements Runnable {<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      "hbase.regionserver.thrift.server.type";<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<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>   * Amount of time in milliseconds before a server thread will timeout<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * applies only to TBoundedThreadPoolServer<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.189"></a>
 <span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /**<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * auth-int: authentication and integrity checking<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   * auth: authentication only<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   *<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   * This is used to authenticate the callers and support impersonation.<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public static final int HREGION_VERSION = 1;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  private final int listenPort;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private Configuration conf;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  volatile TServer tserver;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  volatile Server httpServer;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  private final Hbase.Iface handler;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  private final ThriftMetrics metrics;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  private final HBaseHandler hbaseHandler;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private final UserGroupInformation realUser;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  private SaslUtil.QualityOfProtection qop;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private String host;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  private final boolean securityEnabled;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private final boolean doAsEnabled;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /** An enum of server implementation selections */<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  enum ImplType {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    THREADED_SELECTOR(<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    final String option;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    final boolean isAlwaysFramed;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    final boolean canSpecifyBindIP;<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      this.option = option;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      this.serverClass = serverClass;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.249"></a>
-<span class="sourceLineNo">250</span>     *         {@link #values()}<a name="line.250"></a>
-<span class="sourceLineNo">251</span>     */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public String toString() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return "-" + option;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    String getDescription() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          serverClass.getSimpleName());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      if (isAlwaysFramed) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        sb.append(" This implies the framed transport.");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (this == DEFAULT) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        sb.append("This is the default.");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      OptionGroup group = new OptionGroup();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      for (ImplType t : values()) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      for (ImplType t : values()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (confType.equals(t.option)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          return t;<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>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      ImplType chosenType = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      int numChosen = 0;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      for (ImplType t : values()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        if (cmd.hasOption(t.option)) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          chosenType = t;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          ++numChosen;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      if (numChosen &lt; 1) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        LOG.info("Using default thrift server type");<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        chosenType = DEFAULT;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      } else if (numChosen &gt; 1) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        throw new AssertionError("Exactly one option out of " +<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          Arrays.toString(values()) + " has to be specified");<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      return serverClass.getSimpleName();<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>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      for (ImplType t : values()) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        if (!t.canSpecifyBindIP) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          l.add(t.simpleClassName());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      return l;<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>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    // login the server principal (if using secure Hadoop)<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (securityEnabled) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        "hbase.thrift.kerberos.principal", host);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      hbaseHandler, metrics, conf);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (strQop != null) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    doAsEnabled = conf.getBoolean(THRIFT_SUPPORT_PROXYUSER, false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    if (doAsEnabled) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      if (!conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        LOG.warn("Fail to enable the doAs feature. hbase.regionserver.thrift.http is not " +<a name="line.351"></a>
-<span class="sourceLineNo">352</span>                "configured ");<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>    if (qop != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      if (qop != QualityOfProtection.AUTHENTICATION &amp;&amp;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          qop != QualityOfProtection.INTEGRITY &amp;&amp;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>          qop != QualityOfProtection.PRIVACY) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        throw new IOException(String.format("Invalide %s: It must be one of %s, %s, or %s.",<a name="line.359"></a>
-<span class="sourceLineNo">360</span>                              THRIFT_QOP_KEY,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>                              QualityOfProtection.AUTHENTICATION.name(),<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                              QualityOfProtection.INTEGRITY.name(),<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                              QualityOfProtection.PRIVACY.name()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      checkHttpSecurity(qop, conf);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      if (!securityEnabled) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        throw new IOException("Thrift server must"<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          + " run in secure mode to support authentication");<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><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private void checkHttpSecurity(QualityOfProtection qop, Configuration conf) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (qop == QualityOfProtection.PRIVACY &amp;&amp;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        conf.getBoolean(USE_HTTP_CONF_KEY, false) &amp;&amp;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        !conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      throw new IllegalArgumentException("Thrift HTTP Server's QoP is privacy, but " +<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          THRIFT_SSL_ENABLED + " is false");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Runs the Thrift server<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void run() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    realUser.doAs(new PrivilegedAction&lt;Object&gt;() {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      @Override<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      public Object run() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          pauseMonitor.start();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>          if (conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>            setupHTTPServer();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>            httpServer.start();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>            httpServer.join();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          } else {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>            setupServer();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            tserver.serve();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>          }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        } catch (Exception e) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.error(HBaseMarkers.FATAL, "Cannot run ThriftServer", e);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          // Crash the process if the ThriftServer is not running<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          System.exit(-1);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        return null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    });<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void shutdown() {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    if (pauseMonitor != null) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      pauseMonitor.stop();<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    if (tserver != null) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      tserver.stop();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      tserver = null;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    if (httpServer != null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      try {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        httpServer.stop();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        httpServer = null;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      } catch (Exception e) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        LOG.error("Problem encountered in shutting down HTTP server " + e.getCause());<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      httpServer = null;<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><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private void setupHTTPServer() throws IOException {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    TProcessor processor = new Hbase.Processor&lt;&gt;(handler);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    TServlet thriftHttpServlet = new ThriftHttpServlet(processor, protocolFactory, realUser,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        conf, hbaseHandler, securityEnabled, doAsEnabled);<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    // Set the default max thread number to 100 to limit<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    // the number of concurrent requests so that Thrfit HTTP server doesn't OOM easily.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    // Jetty set the default max thread number to 250, if we don't set it.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    //<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Our default min thread number 2 is the same as that used by Jetty.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    int minThreads = conf.getInt(HTTP_MIN_THREADS, 2);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    int maxThreads = conf.getInt(HTTP_MAX_THREADS, 100);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    QueuedThreadPool threadPool = new QueuedThreadPool(maxThreads);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    threadPool.setMinThreads(minThreads);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    httpServer = new Server(threadPool);<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>    // Context handler<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    ServletContextHandler ctxHandler = new ServletContextHandler(httpServer, "/",<a name="line.448"></a>
-<span class="sourceLineNo">449</span>            ServletContextHandler.SESSIONS);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    ctxHandler.addServlet(new ServletHolder(thriftHttpServlet), "/*");<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // set up Jetty and run the embedded server<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    HttpConfiguration httpConfig = new HttpConfiguration();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    httpConfig.setSecureScheme("https");<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    httpConfig.setSecurePort(listenPort);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    httpConfig.setHeaderCacheSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    httpConfig.setRequestHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    httpConfig.setResponseHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    httpConfig.setSendServerVersion(false);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    httpConfig.setSendDateHeader(false);<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ServerConnector serverConnector;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    if(conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      httpsConfig.addCustomizer(new SecureRequestCustomizer());<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>      SslContextFactory sslCtxFactory = new SslContextFactory();<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      String keystore = conf.get(THRIFT_SSL_KEYSTORE_STORE);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String password = HBaseConfiguration.getPassword(conf,<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          THRIFT_SSL_KEYSTORE_PASSWORD, null);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      String keyPassword = HBaseConfiguration.getPassword(conf,<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          THRIFT_SSL_KEYSTORE_KEYPASSWORD, password);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      sslCtxFactory.setKeyStorePath(keystore);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      sslCtxFactory.setKeyStorePassword(password);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      sslCtxFactory.setKeyManagerPassword(keyPassword);<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      String[] excludeCiphers = conf.getStrings(<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          THRIFT_SSL_EXCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      if (excludeCiphers.length != 0) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        sslCtxFactory.setExcludeCipherSuites(excludeCiphers);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      String[] includeCiphers = conf.getStrings(<a name="line.482"></a>
-<span class="sourceLineNo">483</span>          THRIFT_SSL_INCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      if (includeCiphers.length != 0) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        sslCtxFactory.setIncludeCipherSuites(includeCiphers);<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>      // Disable SSLv3 by default due to "Poodle" Vulnerability - CVE-2014-3566<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      String[] excludeProtocols = conf.getStrings(<a name="line.489"></a>
-<span class="sourceLineNo">490</span>          THRIFT_SSL_EXCLUDE_PROTOCOLS, "SSLv3");<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      if (excludeProtocols.length != 0) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        sslCtxFactory.setExcludeProtocols(excludeProtocols);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      String[] includeProtocols = conf.getStrings(<a name="line.494"></a>
-<span class="sourceLineNo">495</span>          THRIFT_SSL_INCLUDE_PROTOCOLS, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      if (includeProtocols.length != 0) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        sslCtxFactory.setIncludeProtocols(includeProtocols);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      serverConnector = new ServerConnector(httpServer,<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          new SslConnectionFactory(sslCtxFactory, HttpVersion.HTTP_1_1.toString()),<a name="line.501"></a>
-<span class="sourceLineNo">502</span>          new HttpConnectionFactory(httpsConfig));<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    } else {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      serverConnector = new ServerConnector(httpServer, new HttpConnectionFactory(httpConfig));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    serverConnector.setPort(listenPort);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    String host = getBindAddress(conf).getHostAddress();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    serverConnector.setHost(host);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    httpServer.addConnector(serverConnector);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    httpServer.setStopAtShutdown(true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>    if (doAsEnabled) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      ProxyUsers.refreshSuperUserGroupsConfiguration(conf);<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>    LOG.info("Starting Thrift HTTP Server on " + Integer.toString(listenPort));<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  /**<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * Setting up the thrift TServer<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
-<span class="sourceLineNo">522</span>  private void setupServer() throws Exception {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    // Construct correct ProtocolFactory<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    TProtocolFactory protocolFactory = getProtocolFactory();<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>    final TProcessor p = new Hbase.Processor&lt;&gt;(handler);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    ImplType implType = ImplType.getServerImpl(conf);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    TProcessor processor = p;<a name="line.528"></a>
-<span class="sourceLineNo">529</span><a name="line.529"></a>
-<span class="sourceLineNo">530</span>    // Construct correct TransportFactory<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    TTransportFactory transportFactory;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    if (conf.getBoolean(FRAMED_CONF_KEY, false) || implType.isAlwaysFramed) {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (qop != null) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        throw new RuntimeException("Thrift server authentication"<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          + " doesn't work with framed transport yet");<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      transportFactory = new TFramedTransport.Factory(<a name="line.537"></a>
-<span class="sourceLineNo">538</span>          conf.getInt(MAX_FRAME_SIZE_CONF_KEY, 2)  * 1024 * 1024);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      LOG.debug("Using framed transport");<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    } else if (qop == null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      transportFactory = new TTransportFactory();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    } else {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      // Extract the name from the principal<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      String name = SecurityUtil.getUserFromPrincipal(<a name="line.544"></a>
-<span class="sourceLineNo">545</span>        conf.get("hbase.thrift.kerberos.principal"));<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      Map&lt;String, String&gt; saslProperties = SaslUtil.initSaslProperties(qop.name());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      TSaslServerTransport.Factory saslFactory = new TSaslServerTransport.Factory();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      saslFactory.addServerDefinition("GSSAPI", name, host, saslProperties,<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        new SaslGssCallbackHandler() {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          @Override<a name="line.550"></a>
-<span class="sourceLineNo">551</span>          public void handle(Callback[] callbacks)<a name="line.551"></a>
-<span class="sourceLineNo">552</span>              throws UnsupportedCallbackException {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>            AuthorizeCallback ac = null;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>            for (Callback callback : callbacks) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>              if (callback instanceof AuthorizeCallback) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                ac = (AuthorizeCallback) callback;<a name="line.556"></a>
-<span class="sourceLineNo">557</span>              } else {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                throw new UnsupportedCallbackException(callback,<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                    "Unrecognized SASL GSSAPI Callback");<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>            if (ac != null) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>              String authid = ac.getAuthenticationID();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>              String authzid = ac.getAuthorizationID();<a name="line.564"></a>
-<span class="sourceLineNo">565</span>              if (!authid.equals(authzid)) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                ac.setAuthorized(false);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>              } else {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>                ac.setAuthorized(true);<a name="line.568"></a>
-<span class="sourceLineNo">569</span>                String userName = SecurityUtil.getUserFromPrincipal(authzid);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>                LOG.info("Effective user: " + userName);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>                ac.setAuthorizedID(userName);<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>          }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>        });<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      transportFactory = saslFactory;<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Create a processor wrapper, to get the caller<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      processor = new TProcessor() {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        public boolean process(TProtocol inProt,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>            TProtocol outProt) throws TException {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>          TSaslServerTransport saslServerTransport =<a name="line.583"></a>
-<span class="sourceLineNo">584</span>            (TSaslServerTransport)inProt.getTransport();<a name="line.584"></a>
-<span class="sourceLineNo">585</span>          SaslServer saslServer = saslServerTransport.getSaslServer();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>          String principal = saslServer.getAuthorizationID();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>          hbaseHandler.setEffectiveUser(principal);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          return p.process(inProt, outProt);<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>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>    if (conf.get(BIND_CONF_KEY) != null &amp;&amp; !implType.canSpecifyBindIP) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      LOG.error("Server types " + Joiner.on(", ").join(<a name="line.594"></a>
-<span class="sourceLineNo">595</span>          ImplType.serversThatCannotSpecifyBindIP()) + " don't support IP " +<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          "address binding at the moment. See " +<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          "https://issues.apache.org/jira/browse/HBASE-2155 for details.");<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      throw new RuntimeException(<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          "-" + BIND_CONF_KEY + " not supported with " + implType);<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>    // Thrift's implementation uses '0' as a placeholder for 'use the default.'<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    int backlog = conf.getInt(BACKLOG_CONF_KEY, 0);<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (implType == ImplType.HS_HA || implType == ImplType.NONBLOCKING ||<a name="line.605"></a>
-<span class="sourceLineNo">606</span>        implType == ImplType.THREADED_SELECTOR) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(<a name="line.608"></a>
-<span class="sourceLineNo">609</span>          new InetSocketAddress(listenAddress, listenPort));<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span>      if (implType == ImplType.NONBLOCKING) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        TNonblockingServer.Args serverArgs =<a name="line.612"></a>
-<span class="sourceLineNo">613</span>            new TNonblockingServer.Args(serverTransport);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        serverArgs.processor(processor)<a name="line.614"></a>
-<span class="sourceLineNo">615</span>                  .transportFactory(transportFactory)<a name="line.615"></a>
-<span class="sourceLineNo">616</span>                  .protocolFactory(protocolFactory);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        tserver = new TNonblockingServer(serverArgs);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      } else if (implType == ImplType.HS_HA) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        THsHaServer.Args serverArgs = new THsHaServer.Args(serverTransport);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        ExecutorService executorService = createExecutor(<a name="line.621"></a>
-<span class="sourceLineNo">622</span>            callQueue, serverArgs.getMaxWorkerThreads(), serverArgs.getMaxWorkerThreads());<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        tserver = new THsHaServer(serverArgs);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else { // THREADED_SELECTOR<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        TThreadedSelectorServer.Args serverArgs =<a name="line.627"></a>
-<span class="sourceLineNo">628</span>            new HThreadedSelectorServerArgs(serverTransport, conf);<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        ExecutorService executorService = createExecutor(<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            callQueue, serverArgs.getWorkerThreads(), serverArgs.getWorkerThreads());<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.632"></a>
-<span class="sourceLineNo">633</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        tserver = new TThreadedSelectorServer(serverArgs);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      LOG.info("starting HBase " + implType.simpleClassName() +<a name="line.636"></a>
-<span class="sourceLineNo">637</span>          " server on " + Integer.toString(listenPort));<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    } else if (implType == ImplType.THREAD_POOL) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      // Thread pool server. Get the IP address to bind to.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      int readTimeout = conf.getInt(THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY,<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      TServerTransport serverTransport = new TServerSocket(<a name="line.643"></a>
-<span class="sourceLineNo">644</span>          new TServerSocket.ServerSocketTransportArgs().<a name="line.644"></a>
-<span class="sourceLineNo">645</span>              bindAddr(new InetSocketAddress(listenAddress, listenPort)).backlog(backlog).<a name="line.645"></a>
-<span class="sourceLineNo">646</span>              clientTimeout(readTimeout));<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>      TBoundedThreadPoolServer.Args serverArgs =<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          new TBoundedThreadPoolServer.Args(serverTransport, conf);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      serverArgs.processor(processor).transportFactory(transportFactory)<a name="line.650"></a>
-<span class="sourceLineNo">651</span>              .protocolFactory(protocolFactory);<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      LOG.info("starting " + ImplType.THREAD_POOL.simpleClassName() + " on "<a name="line.652"></a>
-<span class="sourceLineNo">653</span>          + listenAddress + ":" + Integer.toString(listenPort)<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          + " with readTimeout " + readTimeout + "ms; " + serverArgs);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      this.tserver = new TBoundedThreadPoolServer(serverArgs, metrics);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } else {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      throw new AssertionError("Unsupported Thrift server implementation: " +<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          implType.simpleClassName());<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>    // A sanity check that we instantiated the right type of server.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    if (tserver.getClass() != implType.serverClass) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      throw new AssertionError("Expected to create Thrift server class " +<a name="line.663"></a>
-<span class="sourceLineNo">664</span>          implType.serverClass.getName() + " but got " +<a name="line.664"></a>
-<span class="sourceLineNo">665</span>          tserver.getClass().getName());<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * auth-int: authentication and integrity checking<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * auth: authentication only<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   *<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * This is used to authenticate the callers and support impersonation.<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public static final int HREGION_VERSION = 1;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private final int listenPort;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private Configuration conf;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  volatile TServer tserver;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  volatile Server httpServer;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final Hbase.Iface handler;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  private final ThriftMetrics metrics;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  private final HBaseHandler hbaseHandler;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  private final UserGroupInformation realUser;<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  private SaslUtil.QualityOfProtection qop;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  private String host;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private final boolean securityEnabled;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  private final boolean doAsEnabled;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  /** An enum of server implementation selections */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  enum ImplType {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    THREADED_SELECTOR(<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    final String option;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    final boolean isAlwaysFramed;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    final boolean canSpecifyBindIP;<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.option = option;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      this.serverClass = serverClass;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.250"></a>
+<span class="sourceLineNo">251</span>     *         {@link #values()}<a name="line.251"></a>
+<span class="sourceLineNo">252</span>     */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    public String toString() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      return "-" + option;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    String getDescription() {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.259"></a>
+<span class="sourceLineNo">260</span>          serverClass.getSimpleName());<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      if (isAlwaysFramed) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        sb.append(" This implies the framed transport.");<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      if (this == DEFAULT) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        sb.append("This is the default.");<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      OptionGroup group = new OptionGroup();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      for (ImplType t : values()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      for (ImplType t : values()) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        if (confType.equals(t.option)) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>          return t;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      ImplType chosenType = null;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      int numChosen = 0;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      for (ImplType t : values()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        if (cmd.hasOption(t.option)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>          chosenType = t;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          ++numChosen;<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>      if (numChosen &lt; 1) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        LOG.info("Using default thrift server type");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        chosenType = DEFAULT;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      } else if (numChosen &gt; 1) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        throw new AssertionError("Exactly one option out of " +<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          Arrays.toString(values()) + " has to be specified");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      return serverClass.getSimpleName();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      for (ImplType t : values()) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        if (!t.canSpecifyBindIP) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>          l.add(t.simpleClassName());<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>      return l;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // login the server principal (if using secure Hadoop)<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (securityEnabled) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        "hbase.thrift.kerberos.principal", host);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      hbaseHandler, metrics, conf);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if (strQop != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a name="line.348"></a>


<TRUNCATED>

[08/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html
index d6f672a..fd7ab7a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html
@@ -87,1949 +87,1951 @@
 <span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.filter.ParseFilter;<a name="line.79"></a>
 <span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.filter.PrefixFilter;<a name="line.80"></a>
 <span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.filter.WhileMatchFilter;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.thrift.TException;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.thrift.TProcessor;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TProtocol;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.thrift.server.THsHaServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.thrift.server.TServer;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServlet;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TServerSocket;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerTransport;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.Server;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.slf4j.Logger;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.slf4j.LoggerFactory;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>/**<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.149"></a>
-<span class="sourceLineNo">150</span> */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>@InterfaceAudience.Private<a name="line.151"></a>
-<span class="sourceLineNo">152</span>public class ThriftServerRunner implements Runnable {<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      "hbase.regionserver.thrift.server.type";<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * Amount of time in milliseconds before a server thread will timeout<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * applies only to TBoundedThreadPoolServer<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.http.HttpServerUtil;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.thrift.TException;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.thrift.TProcessor;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocol;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.thrift.server.THsHaServer;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServer;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.thrift.server.TServlet;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerSocket;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TServerTransport;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.Server;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.slf4j.Logger;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.slf4j.LoggerFactory;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>/**<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.150"></a>
+<span class="sourceLineNo">151</span> */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>@InterfaceAudience.Private<a name="line.152"></a>
+<span class="sourceLineNo">153</span>public class ThriftServerRunner implements Runnable {<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      "hbase.regionserver.thrift.server.type";<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<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>   * Amount of time in milliseconds before a server thread will timeout<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * applies only to TBoundedThreadPoolServer<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.189"></a>
 <span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /**<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * auth-int: authentication and integrity checking<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   * auth: authentication only<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   *<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   * This is used to authenticate the callers and support impersonation.<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public static final int HREGION_VERSION = 1;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  private final int listenPort;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private Configuration conf;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  volatile TServer tserver;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  volatile Server httpServer;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  private final Hbase.Iface handler;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  private final ThriftMetrics metrics;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  private final HBaseHandler hbaseHandler;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private final UserGroupInformation realUser;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  private SaslUtil.QualityOfProtection qop;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private String host;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  private final boolean securityEnabled;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private final boolean doAsEnabled;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /** An enum of server implementation selections */<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  enum ImplType {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    THREADED_SELECTOR(<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    final String option;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    final boolean isAlwaysFramed;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    final boolean canSpecifyBindIP;<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      this.option = option;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      this.serverClass = serverClass;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.249"></a>
-<span class="sourceLineNo">250</span>     *         {@link #values()}<a name="line.250"></a>
-<span class="sourceLineNo">251</span>     */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public String toString() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return "-" + option;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    String getDescription() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          serverClass.getSimpleName());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      if (isAlwaysFramed) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        sb.append(" This implies the framed transport.");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (this == DEFAULT) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        sb.append("This is the default.");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      OptionGroup group = new OptionGroup();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      for (ImplType t : values()) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      for (ImplType t : values()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (confType.equals(t.option)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          return t;<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>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      ImplType chosenType = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      int numChosen = 0;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      for (ImplType t : values()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        if (cmd.hasOption(t.option)) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          chosenType = t;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          ++numChosen;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      if (numChosen &lt; 1) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        LOG.info("Using default thrift server type");<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        chosenType = DEFAULT;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      } else if (numChosen &gt; 1) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        throw new AssertionError("Exactly one option out of " +<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          Arrays.toString(values()) + " has to be specified");<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      return serverClass.getSimpleName();<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>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      for (ImplType t : values()) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        if (!t.canSpecifyBindIP) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          l.add(t.simpleClassName());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      return l;<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>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    // login the server principal (if using secure Hadoop)<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (securityEnabled) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        "hbase.thrift.kerberos.principal", host);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      hbaseHandler, metrics, conf);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (strQop != null) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    doAsEnabled = conf.getBoolean(THRIFT_SUPPORT_PROXYUSER, false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    if (doAsEnabled) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      if (!conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        LOG.warn("Fail to enable the doAs feature. hbase.regionserver.thrift.http is not " +<a name="line.351"></a>
-<span class="sourceLineNo">352</span>                "configured ");<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>    if (qop != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      if (qop != QualityOfProtection.AUTHENTICATION &amp;&amp;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          qop != QualityOfProtection.INTEGRITY &amp;&amp;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>          qop != QualityOfProtection.PRIVACY) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        throw new IOException(String.format("Invalide %s: It must be one of %s, %s, or %s.",<a name="line.359"></a>
-<span class="sourceLineNo">360</span>                              THRIFT_QOP_KEY,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>                              QualityOfProtection.AUTHENTICATION.name(),<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                              QualityOfProtection.INTEGRITY.name(),<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                              QualityOfProtection.PRIVACY.name()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      checkHttpSecurity(qop, conf);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      if (!securityEnabled) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        throw new IOException("Thrift server must"<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          + " run in secure mode to support authentication");<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><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private void checkHttpSecurity(QualityOfProtection qop, Configuration conf) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (qop == QualityOfProtection.PRIVACY &amp;&amp;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        conf.getBoolean(USE_HTTP_CONF_KEY, false) &amp;&amp;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        !conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      throw new IllegalArgumentException("Thrift HTTP Server's QoP is privacy, but " +<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          THRIFT_SSL_ENABLED + " is false");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Runs the Thrift server<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void run() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    realUser.doAs(new PrivilegedAction&lt;Object&gt;() {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      @Override<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      public Object run() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          pauseMonitor.start();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>          if (conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>            setupHTTPServer();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>            httpServer.start();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>            httpServer.join();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          } else {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>            setupServer();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            tserver.serve();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>          }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        } catch (Exception e) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.error(HBaseMarkers.FATAL, "Cannot run ThriftServer", e);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          // Crash the process if the ThriftServer is not running<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          System.exit(-1);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        return null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    });<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void shutdown() {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    if (pauseMonitor != null) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      pauseMonitor.stop();<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    if (tserver != null) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      tserver.stop();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      tserver = null;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    if (httpServer != null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      try {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        httpServer.stop();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        httpServer = null;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      } catch (Exception e) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        LOG.error("Problem encountered in shutting down HTTP server " + e.getCause());<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      httpServer = null;<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><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private void setupHTTPServer() throws IOException {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    TProcessor processor = new Hbase.Processor&lt;&gt;(handler);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    TServlet thriftHttpServlet = new ThriftHttpServlet(processor, protocolFactory, realUser,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        conf, hbaseHandler, securityEnabled, doAsEnabled);<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    // Set the default max thread number to 100 to limit<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    // the number of concurrent requests so that Thrfit HTTP server doesn't OOM easily.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    // Jetty set the default max thread number to 250, if we don't set it.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    //<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Our default min thread number 2 is the same as that used by Jetty.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    int minThreads = conf.getInt(HTTP_MIN_THREADS, 2);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    int maxThreads = conf.getInt(HTTP_MAX_THREADS, 100);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    QueuedThreadPool threadPool = new QueuedThreadPool(maxThreads);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    threadPool.setMinThreads(minThreads);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    httpServer = new Server(threadPool);<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>    // Context handler<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    ServletContextHandler ctxHandler = new ServletContextHandler(httpServer, "/",<a name="line.448"></a>
-<span class="sourceLineNo">449</span>            ServletContextHandler.SESSIONS);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    ctxHandler.addServlet(new ServletHolder(thriftHttpServlet), "/*");<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // set up Jetty and run the embedded server<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    HttpConfiguration httpConfig = new HttpConfiguration();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    httpConfig.setSecureScheme("https");<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    httpConfig.setSecurePort(listenPort);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    httpConfig.setHeaderCacheSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    httpConfig.setRequestHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    httpConfig.setResponseHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    httpConfig.setSendServerVersion(false);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    httpConfig.setSendDateHeader(false);<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ServerConnector serverConnector;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    if(conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      httpsConfig.addCustomizer(new SecureRequestCustomizer());<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>      SslContextFactory sslCtxFactory = new SslContextFactory();<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      String keystore = conf.get(THRIFT_SSL_KEYSTORE_STORE);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String password = HBaseConfiguration.getPassword(conf,<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          THRIFT_SSL_KEYSTORE_PASSWORD, null);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      String keyPassword = HBaseConfiguration.getPassword(conf,<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          THRIFT_SSL_KEYSTORE_KEYPASSWORD, password);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      sslCtxFactory.setKeyStorePath(keystore);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      sslCtxFactory.setKeyStorePassword(password);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      sslCtxFactory.setKeyManagerPassword(keyPassword);<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      String[] excludeCiphers = conf.getStrings(<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          THRIFT_SSL_EXCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      if (excludeCiphers.length != 0) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        sslCtxFactory.setExcludeCipherSuites(excludeCiphers);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      String[] includeCiphers = conf.getStrings(<a name="line.482"></a>
-<span class="sourceLineNo">483</span>          THRIFT_SSL_INCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      if (includeCiphers.length != 0) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        sslCtxFactory.setIncludeCipherSuites(includeCiphers);<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>      // Disable SSLv3 by default due to "Poodle" Vulnerability - CVE-2014-3566<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      String[] excludeProtocols = conf.getStrings(<a name="line.489"></a>
-<span class="sourceLineNo">490</span>          THRIFT_SSL_EXCLUDE_PROTOCOLS, "SSLv3");<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      if (excludeProtocols.length != 0) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        sslCtxFactory.setExcludeProtocols(excludeProtocols);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      String[] includeProtocols = conf.getStrings(<a name="line.494"></a>
-<span class="sourceLineNo">495</span>          THRIFT_SSL_INCLUDE_PROTOCOLS, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      if (includeProtocols.length != 0) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        sslCtxFactory.setIncludeProtocols(includeProtocols);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      serverConnector = new ServerConnector(httpServer,<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          new SslConnectionFactory(sslCtxFactory, HttpVersion.HTTP_1_1.toString()),<a name="line.501"></a>
-<span class="sourceLineNo">502</span>          new HttpConnectionFactory(httpsConfig));<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    } else {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      serverConnector = new ServerConnector(httpServer, new HttpConnectionFactory(httpConfig));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    serverConnector.setPort(listenPort);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    String host = getBindAddress(conf).getHostAddress();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    serverConnector.setHost(host);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    httpServer.addConnector(serverConnector);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    httpServer.setStopAtShutdown(true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>    if (doAsEnabled) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      ProxyUsers.refreshSuperUserGroupsConfiguration(conf);<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>    LOG.info("Starting Thrift HTTP Server on " + Integer.toString(listenPort));<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  /**<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * Setting up the thrift TServer<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
-<span class="sourceLineNo">522</span>  private void setupServer() throws Exception {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    // Construct correct ProtocolFactory<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    TProtocolFactory protocolFactory = getProtocolFactory();<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>    final TProcessor p = new Hbase.Processor&lt;&gt;(handler);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    ImplType implType = ImplType.getServerImpl(conf);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    TProcessor processor = p;<a name="line.528"></a>
-<span class="sourceLineNo">529</span><a name="line.529"></a>
-<span class="sourceLineNo">530</span>    // Construct correct TransportFactory<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    TTransportFactory transportFactory;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    if (conf.getBoolean(FRAMED_CONF_KEY, false) || implType.isAlwaysFramed) {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (qop != null) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        throw new RuntimeException("Thrift server authentication"<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          + " doesn't work with framed transport yet");<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      transportFactory = new TFramedTransport.Factory(<a name="line.537"></a>
-<span class="sourceLineNo">538</span>          conf.getInt(MAX_FRAME_SIZE_CONF_KEY, 2)  * 1024 * 1024);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      LOG.debug("Using framed transport");<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    } else if (qop == null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      transportFactory = new TTransportFactory();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    } else {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      // Extract the name from the principal<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      String name = SecurityUtil.getUserFromPrincipal(<a name="line.544"></a>
-<span class="sourceLineNo">545</span>        conf.get("hbase.thrift.kerberos.principal"));<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      Map&lt;String, String&gt; saslProperties = SaslUtil.initSaslProperties(qop.name());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      TSaslServerTransport.Factory saslFactory = new TSaslServerTransport.Factory();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      saslFactory.addServerDefinition("GSSAPI", name, host, saslProperties,<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        new SaslGssCallbackHandler() {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          @Override<a name="line.550"></a>
-<span class="sourceLineNo">551</span>          public void handle(Callback[] callbacks)<a name="line.551"></a>
-<span class="sourceLineNo">552</span>              throws UnsupportedCallbackException {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>            AuthorizeCallback ac = null;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>            for (Callback callback : callbacks) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>              if (callback instanceof AuthorizeCallback) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                ac = (AuthorizeCallback) callback;<a name="line.556"></a>
-<span class="sourceLineNo">557</span>              } else {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                throw new UnsupportedCallbackException(callback,<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                    "Unrecognized SASL GSSAPI Callback");<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>            if (ac != null) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>              String authid = ac.getAuthenticationID();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>              String authzid = ac.getAuthorizationID();<a name="line.564"></a>
-<span class="sourceLineNo">565</span>              if (!authid.equals(authzid)) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                ac.setAuthorized(false);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>              } else {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>                ac.setAuthorized(true);<a name="line.568"></a>
-<span class="sourceLineNo">569</span>                String userName = SecurityUtil.getUserFromPrincipal(authzid);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>                LOG.info("Effective user: " + userName);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>                ac.setAuthorizedID(userName);<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>          }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>        });<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      transportFactory = saslFactory;<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Create a processor wrapper, to get the caller<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      processor = new TProcessor() {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        public boolean process(TProtocol inProt,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>            TProtocol outProt) throws TException {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>          TSaslServerTransport saslServerTransport =<a name="line.583"></a>
-<span class="sourceLineNo">584</span>            (TSaslServerTransport)inProt.getTransport();<a name="line.584"></a>
-<span class="sourceLineNo">585</span>          SaslServer saslServer = saslServerTransport.getSaslServer();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>          String principal = saslServer.getAuthorizationID();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>          hbaseHandler.setEffectiveUser(principal);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          return p.process(inProt, outProt);<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>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>    if (conf.get(BIND_CONF_KEY) != null &amp;&amp; !implType.canSpecifyBindIP) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      LOG.error("Server types " + Joiner.on(", ").join(<a name="line.594"></a>
-<span class="sourceLineNo">595</span>          ImplType.serversThatCannotSpecifyBindIP()) + " don't support IP " +<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          "address binding at the moment. See " +<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          "https://issues.apache.org/jira/browse/HBASE-2155 for details.");<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      throw new RuntimeException(<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          "-" + BIND_CONF_KEY + " not supported with " + implType);<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>    // Thrift's implementation uses '0' as a placeholder for 'use the default.'<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    int backlog = conf.getInt(BACKLOG_CONF_KEY, 0);<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (implType == ImplType.HS_HA || implType == ImplType.NONBLOCKING ||<a name="line.605"></a>
-<span class="sourceLineNo">606</span>        implType == ImplType.THREADED_SELECTOR) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(<a name="line.608"></a>
-<span class="sourceLineNo">609</span>          new InetSocketAddress(listenAddress, listenPort));<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span>      if (implType == ImplType.NONBLOCKING) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        TNonblockingServer.Args serverArgs =<a name="line.612"></a>
-<span class="sourceLineNo">613</span>            new TNonblockingServer.Args(serverTransport);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        serverArgs.processor(processor)<a name="line.614"></a>
-<span class="sourceLineNo">615</span>                  .transportFactory(transportFactory)<a name="line.615"></a>
-<span class="sourceLineNo">616</span>                  .protocolFactory(protocolFactory);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        tserver = new TNonblockingServer(serverArgs);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      } else if (implType == ImplType.HS_HA) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        THsHaServer.Args serverArgs = new THsHaServer.Args(serverTransport);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        ExecutorService executorService = createExecutor(<a name="line.621"></a>
-<span class="sourceLineNo">622</span>            callQueue, serverArgs.getMaxWorkerThreads(), serverArgs.getMaxWorkerThreads());<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        tserver = new THsHaServer(serverArgs);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else { // THREADED_SELECTOR<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        TThreadedSelectorServer.Args serverArgs =<a name="line.627"></a>
-<span class="sourceLineNo">628</span>            new HThreadedSelectorServerArgs(serverTransport, conf);<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        ExecutorService executorService = createExecutor(<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            callQueue, serverArgs.getWorkerThreads(), serverArgs.getWorkerThreads());<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.632"></a>
-<span class="sourceLineNo">633</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        tserver = new TThreadedSelectorServer(serverArgs);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      LOG.info("starting HBase " + implType.simpleClassName() +<a name="line.636"></a>
-<span class="sourceLineNo">637</span>          " server on " + Integer.toString(listenPort));<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    } else if (implType == ImplType.THREAD_POOL) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      // Thread pool server. Get the IP address to bind to.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      int readTimeout = conf.getInt(THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY,<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      TServerTransport serverTransport = new TServerSocket(<a name="line.643"></a>
-<span class="sourceLineNo">644</span>          new TServerSocket.ServerSocketTransportArgs().<a name="line.644"></a>
-<span class="sourceLineNo">645</span>              bindAddr(new InetSocketAddress(listenAddress, listenPort)).backlog(backlog).<a name="line.645"></a>
-<span class="sourceLineNo">646</span>              clientTimeout(readTimeout));<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>      TBoundedThreadPoolServer.Args serverArgs =<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          new TBoundedThreadPoolServer.Args(serverTransport, conf);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      serverArgs.processor(processor).transportFactory(transportFactory)<a name="line.650"></a>
-<span class="sourceLineNo">651</span>              .protocolFactory(protocolFactory);<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      LOG.info("starting " + ImplType.THREAD_POOL.simpleClassName() + " on "<a name="line.652"></a>
-<span class="sourceLineNo">653</span>          + listenAddress + ":" + Integer.toString(listenPort)<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          + " with readTimeout " + readTimeout + "ms; " + serverArgs);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      this.tserver = new TBoundedThreadPoolServer(serverArgs, metrics);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } else {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      throw new AssertionError("Unsupported Thrift server implementation: " +<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          implType.simpleClassName());<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>    // A sanity check that we instantiated the right type of server.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    if (tserver.getClass() != implType.serverClass) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      throw new AssertionError("Expected to create Thrift server class " +<a name="line.663"></a>
-<span class="sourceLineNo">664</span>          implType.serverClass.getName() + " but got " +<a name="line.664"></a>
-<span class="sourceLineNo">665</span>          tserver.getClass().getName());<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * auth-int: authentication and integrity checking<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * auth: authentication only<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   *<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * This is used to authenticate the callers and support impersonation.<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public static final int HREGION_VERSION = 1;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private final int listenPort;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private Configuration conf;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  volatile TServer tserver;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  volatile Server httpServer;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final Hbase.Iface handler;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  private final ThriftMetrics metrics;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  private final HBaseHandler hbaseHandler;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  private final UserGroupInformation realUser;<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  private SaslUtil.QualityOfProtection qop;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  private String host;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private final boolean securityEnabled;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  private final boolean doAsEnabled;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  /** An enum of server implementation selections */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  enum ImplType {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    THREADED_SELECTOR(<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    final String option;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    final boolean isAlwaysFramed;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    final boolean canSpecifyBindIP;<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.option = option;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      this.serverClass = serverClass;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.250"></a>
+<span class="sourceLineNo">251</span>     *         {@link #values()}<a name="line.251"></a>
+<span class="sourceLineNo">252</span>     */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    public String toString() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      return "-" + option;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    String getDescription() {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.259"></a>
+<span class="sourceLineNo">260</span>          serverClass.getSimpleName());<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      if (isAlwaysFramed) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        sb.append(" This implies the framed transport.");<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      if (this == DEFAULT) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        sb.append("This is the default.");<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      OptionGroup group = new OptionGroup();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      for (ImplType t : values()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      for (ImplType t : values()) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        if (confType.equals(t.option)) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>          return t;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      ImplType chosenType = null;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      int numChosen = 0;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      for (ImplType t : values()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        if (cmd.hasOption(t.option)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>          chosenType = t;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          ++numChosen;<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>      if (numChosen &lt; 1) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        LOG.info("Using default thrift server type");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        chosenType = DEFAULT;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      } else if (numChosen &gt; 1) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        throw new AssertionError("Exactly one option out of " +<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          Arrays.toString(values()) + " has to be specified");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      return serverClass.getSimpleName();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      for (ImplType t : values()) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        if (!t.canSpecifyBindIP) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>          l.add(t.simpleClassName());<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>      return l;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // login the server principal (if using secure Hadoop)<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (securityEnabled) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        "hbase.thrift.kerberos.principal", host);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      hbaseHandler, metrics, conf);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if (strQop != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.347"></a>
+<span class="sourceLineNo"

<TRUNCATED>

[05/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html
index d6f672a..fd7ab7a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html
@@ -87,1949 +87,1951 @@
 <span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.filter.ParseFilter;<a name="line.79"></a>
 <span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.filter.PrefixFilter;<a name="line.80"></a>
 <span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.filter.WhileMatchFilter;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.thrift.TException;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.thrift.TProcessor;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TProtocol;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.thrift.server.THsHaServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.thrift.server.TServer;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServlet;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TServerSocket;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerTransport;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.Server;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.slf4j.Logger;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.slf4j.LoggerFactory;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span>/**<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.149"></a>
-<span class="sourceLineNo">150</span> */<a name="line.150"></a>
-<span class="sourceLineNo">151</span>@InterfaceAudience.Private<a name="line.151"></a>
-<span class="sourceLineNo">152</span>public class ThriftServerRunner implements Runnable {<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      "hbase.regionserver.thrift.server.type";<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.162"></a>
-<span class="sourceLineNo">163</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.167"></a>
-<span class="sourceLineNo">168</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.178"></a>
-<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span>  /**<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * Amount of time in milliseconds before a server thread will timeout<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * applies only to TBoundedThreadPoolServer<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
+<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.http.HttpServerUtil;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.log.HBaseMarkers;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.security.SaslUtil;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.security.SaslUtil.QualityOfProtection;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.security.SecurityUtil;<a name="line.86"></a>
+<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.thrift.generated.AlreadyExists;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.thrift.generated.BatchMutation;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.thrift.generated.ColumnDescriptor;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.thrift.generated.Hbase;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.thrift.generated.IOError;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.thrift.generated.IllegalArgument;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.thrift.generated.Mutation;<a name="line.94"></a>
+<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.thrift.generated.TAppend;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.thrift.generated.TCell;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.thrift.generated.TIncrement;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.thrift.generated.TRegionInfo;<a name="line.98"></a>
+<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.thrift.generated.TRowResult;<a name="line.99"></a>
+<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.thrift.generated.TScan;<a name="line.100"></a>
+<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.util.ConnectionCache;<a name="line.102"></a>
+<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.util.DNS;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.104"></a>
+<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.util.Strings;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>import org.apache.hadoop.security.SaslRpcServer.SaslGssCallbackHandler;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>import org.apache.hadoop.security.UserGroupInformation;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>import org.apache.hadoop.security.authorize.ProxyUsers;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>import org.apache.thrift.TException;<a name="line.109"></a>
+<span class="sourceLineNo">110</span>import org.apache.thrift.TProcessor;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>import org.apache.thrift.protocol.TBinaryProtocol;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>import org.apache.thrift.protocol.TCompactProtocol;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>import org.apache.thrift.protocol.TProtocol;<a name="line.113"></a>
+<span class="sourceLineNo">114</span>import org.apache.thrift.protocol.TProtocolFactory;<a name="line.114"></a>
+<span class="sourceLineNo">115</span>import org.apache.thrift.server.THsHaServer;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>import org.apache.thrift.server.TNonblockingServer;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>import org.apache.thrift.server.TServer;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>import org.apache.thrift.server.TServlet;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>import org.apache.thrift.server.TThreadedSelectorServer;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>import org.apache.thrift.transport.TFramedTransport;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>import org.apache.thrift.transport.TNonblockingServerSocket;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>import org.apache.thrift.transport.TNonblockingServerTransport;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>import org.apache.thrift.transport.TSaslServerTransport;<a name="line.123"></a>
+<span class="sourceLineNo">124</span>import org.apache.thrift.transport.TServerSocket;<a name="line.124"></a>
+<span class="sourceLineNo">125</span>import org.apache.thrift.transport.TServerTransport;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>import org.apache.thrift.transport.TTransportFactory;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>import org.eclipse.jetty.http.HttpVersion;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>import org.eclipse.jetty.server.HttpConfiguration;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>import org.eclipse.jetty.server.HttpConnectionFactory;<a name="line.130"></a>
+<span class="sourceLineNo">131</span>import org.eclipse.jetty.server.SecureRequestCustomizer;<a name="line.131"></a>
+<span class="sourceLineNo">132</span>import org.eclipse.jetty.server.Server;<a name="line.132"></a>
+<span class="sourceLineNo">133</span>import org.eclipse.jetty.server.ServerConnector;<a name="line.133"></a>
+<span class="sourceLineNo">134</span>import org.eclipse.jetty.server.SslConnectionFactory;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>import org.eclipse.jetty.servlet.ServletContextHandler;<a name="line.135"></a>
+<span class="sourceLineNo">136</span>import org.eclipse.jetty.servlet.ServletHolder;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>import org.eclipse.jetty.util.ssl.SslContextFactory;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>import org.eclipse.jetty.util.thread.QueuedThreadPool;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>import org.slf4j.Logger;<a name="line.139"></a>
+<span class="sourceLineNo">140</span>import org.slf4j.LoggerFactory;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>import org.apache.hbase.thirdparty.com.google.common.base.Throwables;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine;<a name="line.144"></a>
+<span class="sourceLineNo">145</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.Option;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>import org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup;<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>/**<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * ThriftServerRunner - this class starts up a Thrift server which implements<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * the Hbase API specified in the Hbase.thrift IDL file.<a name="line.150"></a>
+<span class="sourceLineNo">151</span> */<a name="line.151"></a>
+<span class="sourceLineNo">152</span>@InterfaceAudience.Private<a name="line.152"></a>
+<span class="sourceLineNo">153</span>public class ThriftServerRunner implements Runnable {<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  private static final Logger LOG = LoggerFactory.getLogger(ThriftServerRunner.class);<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  private static final int DEFAULT_HTTP_MAX_HEADER_SIZE = 64 * 1024; // 64k<a name="line.157"></a>
+<span class="sourceLineNo">158</span><a name="line.158"></a>
+<span class="sourceLineNo">159</span>  static final String SERVER_TYPE_CONF_KEY =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      "hbase.regionserver.thrift.server.type";<a name="line.160"></a>
+<span class="sourceLineNo">161</span><a name="line.161"></a>
+<span class="sourceLineNo">162</span>  static final String BIND_CONF_KEY = "hbase.regionserver.thrift.ipaddress";<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  static final String COMPACT_CONF_KEY = "hbase.regionserver.thrift.compact";<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  static final String FRAMED_CONF_KEY = "hbase.regionserver.thrift.framed";<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  static final String MAX_FRAME_SIZE_CONF_KEY =<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          "hbase.regionserver.thrift.framed.max_frame_size_in_mb";<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  static final String PORT_CONF_KEY = "hbase.regionserver.thrift.port";<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  static final String COALESCE_INC_KEY = "hbase.regionserver.thrift.coalesceIncrement";<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  static final String USE_HTTP_CONF_KEY = "hbase.regionserver.thrift.http";<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  static final String HTTP_MIN_THREADS = "hbase.thrift.http_threads.min";<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  static final String HTTP_MAX_THREADS = "hbase.thrift.http_threads.max";<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span>  static final String THRIFT_SSL_ENABLED = "hbase.thrift.ssl.enabled";<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  static final String THRIFT_SSL_KEYSTORE_STORE = "hbase.thrift.ssl.keystore.store";<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  static final String THRIFT_SSL_KEYSTORE_PASSWORD = "hbase.thrift.ssl.keystore.password";<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  static final String THRIFT_SSL_KEYSTORE_KEYPASSWORD = "hbase.thrift.ssl.keystore.keypassword";<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  static final String THRIFT_SSL_EXCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.exclude.cipher.suites";<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  static final String THRIFT_SSL_INCLUDE_CIPHER_SUITES = "hbase.thrift.ssl.include.cipher.suites";<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  static final String THRIFT_SSL_EXCLUDE_PROTOCOLS = "hbase.thrift.ssl.exclude.protocols";<a name="line.179"></a>
+<span class="sourceLineNo">180</span>  static final String THRIFT_SSL_INCLUDE_PROTOCOLS = "hbase.thrift.ssl.include.protocols";<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>   * Amount of time in milliseconds before a server thread will timeout<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * waiting for client to send data on a connected socket. Currently,<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   * applies only to TBoundedThreadPoolServer<a name="line.185"></a>
+<span class="sourceLineNo">186</span>   */<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public static final String THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY =<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    "hbase.thrift.server.socket.read.timeout";<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  public static final int THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT = 60000;<a name="line.189"></a>
 <span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  /**<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * auth-int: authentication and integrity checking<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   * auth: authentication only<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   *<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   * This is used to authenticate the callers and support impersonation.<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.200"></a>
-<span class="sourceLineNo">201</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.201"></a>
-<span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  public static final int HREGION_VERSION = 1;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  private final int listenPort;<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private Configuration conf;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  volatile TServer tserver;<a name="line.210"></a>
-<span class="sourceLineNo">211</span>  volatile Server httpServer;<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  private final Hbase.Iface handler;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  private final ThriftMetrics metrics;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  private final HBaseHandler hbaseHandler;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private final UserGroupInformation realUser;<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span>  private SaslUtil.QualityOfProtection qop;<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  private String host;<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>  private final boolean securityEnabled;<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  private final boolean doAsEnabled;<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>  /** An enum of server implementation selections */<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  enum ImplType {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.228"></a>
-<span class="sourceLineNo">229</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    THREADED_SELECTOR(<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.233"></a>
-<span class="sourceLineNo">234</span><a name="line.234"></a>
-<span class="sourceLineNo">235</span>    final String option;<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    final boolean isAlwaysFramed;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    final boolean canSpecifyBindIP;<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.240"></a>
-<span class="sourceLineNo">241</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      this.option = option;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      this.serverClass = serverClass;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.249"></a>
-<span class="sourceLineNo">250</span>     *         {@link #values()}<a name="line.250"></a>
-<span class="sourceLineNo">251</span>     */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    @Override<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    public String toString() {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      return "-" + option;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    String getDescription() {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          serverClass.getSimpleName());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      if (isAlwaysFramed) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        sb.append(" This implies the framed transport.");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      if (this == DEFAULT) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>        sb.append("This is the default.");<a name="line.264"></a>
-<span class="sourceLineNo">265</span>      }<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      OptionGroup group = new OptionGroup();<a name="line.270"></a>
-<span class="sourceLineNo">271</span>      for (ImplType t : values()) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      for (ImplType t : values()) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        if (confType.equals(t.option)) {<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          return t;<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>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>    }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      ImplType chosenType = null;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      int numChosen = 0;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      for (ImplType t : values()) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        if (cmd.hasOption(t.option)) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          chosenType = t;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>          ++numChosen;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>        }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      }<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      if (numChosen &lt; 1) {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        LOG.info("Using default thrift server type");<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        chosenType = DEFAULT;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      } else if (numChosen &gt; 1) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>        throw new AssertionError("Exactly one option out of " +<a name="line.300"></a>
-<span class="sourceLineNo">301</span>          Arrays.toString(values()) + " has to be specified");<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      }<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      return serverClass.getSimpleName();<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>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      for (ImplType t : values()) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>        if (!t.canSpecifyBindIP) {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>          l.add(t.simpleClassName());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        }<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      }<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      return l;<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>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    // login the server principal (if using secure Hadoop)<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    if (securityEnabled) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.330"></a>
-<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.332"></a>
-<span class="sourceLineNo">333</span>        "hbase.thrift.kerberos.principal", host);<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.341"></a>
-<span class="sourceLineNo">342</span>      hbaseHandler, metrics, conf);<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    if (strQop != null) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    doAsEnabled = conf.getBoolean(THRIFT_SUPPORT_PROXYUSER, false);<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    if (doAsEnabled) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>      if (!conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        LOG.warn("Fail to enable the doAs feature. hbase.regionserver.thrift.http is not " +<a name="line.351"></a>
-<span class="sourceLineNo">352</span>                "configured ");<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>    if (qop != null) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      if (qop != QualityOfProtection.AUTHENTICATION &amp;&amp;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>          qop != QualityOfProtection.INTEGRITY &amp;&amp;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>          qop != QualityOfProtection.PRIVACY) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>        throw new IOException(String.format("Invalide %s: It must be one of %s, %s, or %s.",<a name="line.359"></a>
-<span class="sourceLineNo">360</span>                              THRIFT_QOP_KEY,<a name="line.360"></a>
-<span class="sourceLineNo">361</span>                              QualityOfProtection.AUTHENTICATION.name(),<a name="line.361"></a>
-<span class="sourceLineNo">362</span>                              QualityOfProtection.INTEGRITY.name(),<a name="line.362"></a>
-<span class="sourceLineNo">363</span>                              QualityOfProtection.PRIVACY.name()));<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      }<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      checkHttpSecurity(qop, conf);<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      if (!securityEnabled) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        throw new IOException("Thrift server must"<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          + " run in secure mode to support authentication");<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><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  private void checkHttpSecurity(QualityOfProtection qop, Configuration conf) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    if (qop == QualityOfProtection.PRIVACY &amp;&amp;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>        conf.getBoolean(USE_HTTP_CONF_KEY, false) &amp;&amp;<a name="line.375"></a>
-<span class="sourceLineNo">376</span>        !conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      throw new IllegalArgumentException("Thrift HTTP Server's QoP is privacy, but " +<a name="line.377"></a>
-<span class="sourceLineNo">378</span>          THRIFT_SSL_ENABLED + " is false");<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Runs the Thrift server<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  public void run() {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    realUser.doAs(new PrivilegedAction&lt;Object&gt;() {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      @Override<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      public Object run() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        try {<a name="line.390"></a>
-<span class="sourceLineNo">391</span>          pauseMonitor.start();<a name="line.391"></a>
-<span class="sourceLineNo">392</span>          if (conf.getBoolean(USE_HTTP_CONF_KEY, false)) {<a name="line.392"></a>
-<span class="sourceLineNo">393</span>            setupHTTPServer();<a name="line.393"></a>
-<span class="sourceLineNo">394</span>            httpServer.start();<a name="line.394"></a>
-<span class="sourceLineNo">395</span>            httpServer.join();<a name="line.395"></a>
-<span class="sourceLineNo">396</span>          } else {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>            setupServer();<a name="line.397"></a>
-<span class="sourceLineNo">398</span>            tserver.serve();<a name="line.398"></a>
-<span class="sourceLineNo">399</span>          }<a name="line.399"></a>
-<span class="sourceLineNo">400</span>        } catch (Exception e) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          LOG.error(HBaseMarkers.FATAL, "Cannot run ThriftServer", e);<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          // Crash the process if the ThriftServer is not running<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          System.exit(-1);<a name="line.403"></a>
-<span class="sourceLineNo">404</span>        }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        return null;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    });<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span>  }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>  public void shutdown() {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    if (pauseMonitor != null) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      pauseMonitor.stop();<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    }<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    if (tserver != null) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      tserver.stop();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      tserver = null;<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    }<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    if (httpServer != null) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span>      try {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>        httpServer.stop();<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        httpServer = null;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      } catch (Exception e) {<a name="line.423"></a>
-<span class="sourceLineNo">424</span>        LOG.error("Problem encountered in shutting down HTTP server " + e.getCause());<a name="line.424"></a>
-<span class="sourceLineNo">425</span>      }<a name="line.425"></a>
-<span class="sourceLineNo">426</span>      httpServer = null;<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><a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private void setupHTTPServer() throws IOException {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    TProcessor processor = new Hbase.Processor&lt;&gt;(handler);<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    TServlet thriftHttpServlet = new ThriftHttpServlet(processor, protocolFactory, realUser,<a name="line.433"></a>
-<span class="sourceLineNo">434</span>        conf, hbaseHandler, securityEnabled, doAsEnabled);<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>    // Set the default max thread number to 100 to limit<a name="line.436"></a>
-<span class="sourceLineNo">437</span>    // the number of concurrent requests so that Thrfit HTTP server doesn't OOM easily.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    // Jetty set the default max thread number to 250, if we don't set it.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>    //<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Our default min thread number 2 is the same as that used by Jetty.<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    int minThreads = conf.getInt(HTTP_MIN_THREADS, 2);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    int maxThreads = conf.getInt(HTTP_MAX_THREADS, 100);<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    QueuedThreadPool threadPool = new QueuedThreadPool(maxThreads);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    threadPool.setMinThreads(minThreads);<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    httpServer = new Server(threadPool);<a name="line.445"></a>
-<span class="sourceLineNo">446</span><a name="line.446"></a>
-<span class="sourceLineNo">447</span>    // Context handler<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    ServletContextHandler ctxHandler = new ServletContextHandler(httpServer, "/",<a name="line.448"></a>
-<span class="sourceLineNo">449</span>            ServletContextHandler.SESSIONS);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    ctxHandler.addServlet(new ServletHolder(thriftHttpServlet), "/*");<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>    // set up Jetty and run the embedded server<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    HttpConfiguration httpConfig = new HttpConfiguration();<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    httpConfig.setSecureScheme("https");<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    httpConfig.setSecurePort(listenPort);<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    httpConfig.setHeaderCacheSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    httpConfig.setRequestHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    httpConfig.setResponseHeaderSize(DEFAULT_HTTP_MAX_HEADER_SIZE);<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    httpConfig.setSendServerVersion(false);<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    httpConfig.setSendDateHeader(false);<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span>    ServerConnector serverConnector;<a name="line.462"></a>
-<span class="sourceLineNo">463</span>    if(conf.getBoolean(THRIFT_SSL_ENABLED, false)) {<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig);<a name="line.464"></a>
-<span class="sourceLineNo">465</span>      httpsConfig.addCustomizer(new SecureRequestCustomizer());<a name="line.465"></a>
-<span class="sourceLineNo">466</span><a name="line.466"></a>
-<span class="sourceLineNo">467</span>      SslContextFactory sslCtxFactory = new SslContextFactory();<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      String keystore = conf.get(THRIFT_SSL_KEYSTORE_STORE);<a name="line.468"></a>
-<span class="sourceLineNo">469</span>      String password = HBaseConfiguration.getPassword(conf,<a name="line.469"></a>
-<span class="sourceLineNo">470</span>          THRIFT_SSL_KEYSTORE_PASSWORD, null);<a name="line.470"></a>
-<span class="sourceLineNo">471</span>      String keyPassword = HBaseConfiguration.getPassword(conf,<a name="line.471"></a>
-<span class="sourceLineNo">472</span>          THRIFT_SSL_KEYSTORE_KEYPASSWORD, password);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>      sslCtxFactory.setKeyStorePath(keystore);<a name="line.473"></a>
-<span class="sourceLineNo">474</span>      sslCtxFactory.setKeyStorePassword(password);<a name="line.474"></a>
-<span class="sourceLineNo">475</span>      sslCtxFactory.setKeyManagerPassword(keyPassword);<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>      String[] excludeCiphers = conf.getStrings(<a name="line.477"></a>
-<span class="sourceLineNo">478</span>          THRIFT_SSL_EXCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.478"></a>
-<span class="sourceLineNo">479</span>      if (excludeCiphers.length != 0) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>        sslCtxFactory.setExcludeCipherSuites(excludeCiphers);<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      }<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      String[] includeCiphers = conf.getStrings(<a name="line.482"></a>
-<span class="sourceLineNo">483</span>          THRIFT_SSL_INCLUDE_CIPHER_SUITES, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.483"></a>
-<span class="sourceLineNo">484</span>      if (includeCiphers.length != 0) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span>        sslCtxFactory.setIncludeCipherSuites(includeCiphers);<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>      // Disable SSLv3 by default due to "Poodle" Vulnerability - CVE-2014-3566<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      String[] excludeProtocols = conf.getStrings(<a name="line.489"></a>
-<span class="sourceLineNo">490</span>          THRIFT_SSL_EXCLUDE_PROTOCOLS, "SSLv3");<a name="line.490"></a>
-<span class="sourceLineNo">491</span>      if (excludeProtocols.length != 0) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>        sslCtxFactory.setExcludeProtocols(excludeProtocols);<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      }<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      String[] includeProtocols = conf.getStrings(<a name="line.494"></a>
-<span class="sourceLineNo">495</span>          THRIFT_SSL_INCLUDE_PROTOCOLS, ArrayUtils.EMPTY_STRING_ARRAY);<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      if (includeProtocols.length != 0) {<a name="line.496"></a>
-<span class="sourceLineNo">497</span>        sslCtxFactory.setIncludeProtocols(includeProtocols);<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      }<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span>      serverConnector = new ServerConnector(httpServer,<a name="line.500"></a>
-<span class="sourceLineNo">501</span>          new SslConnectionFactory(sslCtxFactory, HttpVersion.HTTP_1_1.toString()),<a name="line.501"></a>
-<span class="sourceLineNo">502</span>          new HttpConnectionFactory(httpsConfig));<a name="line.502"></a>
-<span class="sourceLineNo">503</span>    } else {<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      serverConnector = new ServerConnector(httpServer, new HttpConnectionFactory(httpConfig));<a name="line.504"></a>
-<span class="sourceLineNo">505</span>    }<a name="line.505"></a>
-<span class="sourceLineNo">506</span>    serverConnector.setPort(listenPort);<a name="line.506"></a>
-<span class="sourceLineNo">507</span>    String host = getBindAddress(conf).getHostAddress();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>    serverConnector.setHost(host);<a name="line.508"></a>
-<span class="sourceLineNo">509</span>    httpServer.addConnector(serverConnector);<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    httpServer.setStopAtShutdown(true);<a name="line.510"></a>
-<span class="sourceLineNo">511</span><a name="line.511"></a>
-<span class="sourceLineNo">512</span>    if (doAsEnabled) {<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      ProxyUsers.refreshSuperUserGroupsConfiguration(conf);<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>    LOG.info("Starting Thrift HTTP Server on " + Integer.toString(listenPort));<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  /**<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   * Setting up the thrift TServer<a name="line.520"></a>
-<span class="sourceLineNo">521</span>   */<a name="line.521"></a>
-<span class="sourceLineNo">522</span>  private void setupServer() throws Exception {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    // Construct correct ProtocolFactory<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    TProtocolFactory protocolFactory = getProtocolFactory();<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span>    final TProcessor p = new Hbase.Processor&lt;&gt;(handler);<a name="line.526"></a>
-<span class="sourceLineNo">527</span>    ImplType implType = ImplType.getServerImpl(conf);<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    TProcessor processor = p;<a name="line.528"></a>
-<span class="sourceLineNo">529</span><a name="line.529"></a>
-<span class="sourceLineNo">530</span>    // Construct correct TransportFactory<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    TTransportFactory transportFactory;<a name="line.531"></a>
-<span class="sourceLineNo">532</span>    if (conf.getBoolean(FRAMED_CONF_KEY, false) || implType.isAlwaysFramed) {<a name="line.532"></a>
-<span class="sourceLineNo">533</span>      if (qop != null) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>        throw new RuntimeException("Thrift server authentication"<a name="line.534"></a>
-<span class="sourceLineNo">535</span>          + " doesn't work with framed transport yet");<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      }<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      transportFactory = new TFramedTransport.Factory(<a name="line.537"></a>
-<span class="sourceLineNo">538</span>          conf.getInt(MAX_FRAME_SIZE_CONF_KEY, 2)  * 1024 * 1024);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>      LOG.debug("Using framed transport");<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    } else if (qop == null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      transportFactory = new TTransportFactory();<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    } else {<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      // Extract the name from the principal<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      String name = SecurityUtil.getUserFromPrincipal(<a name="line.544"></a>
-<span class="sourceLineNo">545</span>        conf.get("hbase.thrift.kerberos.principal"));<a name="line.545"></a>
-<span class="sourceLineNo">546</span>      Map&lt;String, String&gt; saslProperties = SaslUtil.initSaslProperties(qop.name());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>      TSaslServerTransport.Factory saslFactory = new TSaslServerTransport.Factory();<a name="line.547"></a>
-<span class="sourceLineNo">548</span>      saslFactory.addServerDefinition("GSSAPI", name, host, saslProperties,<a name="line.548"></a>
-<span class="sourceLineNo">549</span>        new SaslGssCallbackHandler() {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>          @Override<a name="line.550"></a>
-<span class="sourceLineNo">551</span>          public void handle(Callback[] callbacks)<a name="line.551"></a>
-<span class="sourceLineNo">552</span>              throws UnsupportedCallbackException {<a name="line.552"></a>
-<span class="sourceLineNo">553</span>            AuthorizeCallback ac = null;<a name="line.553"></a>
-<span class="sourceLineNo">554</span>            for (Callback callback : callbacks) {<a name="line.554"></a>
-<span class="sourceLineNo">555</span>              if (callback instanceof AuthorizeCallback) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span>                ac = (AuthorizeCallback) callback;<a name="line.556"></a>
-<span class="sourceLineNo">557</span>              } else {<a name="line.557"></a>
-<span class="sourceLineNo">558</span>                throw new UnsupportedCallbackException(callback,<a name="line.558"></a>
-<span class="sourceLineNo">559</span>                    "Unrecognized SASL GSSAPI Callback");<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>            if (ac != null) {<a name="line.562"></a>
-<span class="sourceLineNo">563</span>              String authid = ac.getAuthenticationID();<a name="line.563"></a>
-<span class="sourceLineNo">564</span>              String authzid = ac.getAuthorizationID();<a name="line.564"></a>
-<span class="sourceLineNo">565</span>              if (!authid.equals(authzid)) {<a name="line.565"></a>
-<span class="sourceLineNo">566</span>                ac.setAuthorized(false);<a name="line.566"></a>
-<span class="sourceLineNo">567</span>              } else {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>                ac.setAuthorized(true);<a name="line.568"></a>
-<span class="sourceLineNo">569</span>                String userName = SecurityUtil.getUserFromPrincipal(authzid);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>                LOG.info("Effective user: " + userName);<a name="line.570"></a>
-<span class="sourceLineNo">571</span>                ac.setAuthorizedID(userName);<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>          }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>        });<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      transportFactory = saslFactory;<a name="line.576"></a>
-<span class="sourceLineNo">577</span><a name="line.577"></a>
-<span class="sourceLineNo">578</span>      // Create a processor wrapper, to get the caller<a name="line.578"></a>
-<span class="sourceLineNo">579</span>      processor = new TProcessor() {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>        @Override<a name="line.580"></a>
-<span class="sourceLineNo">581</span>        public boolean process(TProtocol inProt,<a name="line.581"></a>
-<span class="sourceLineNo">582</span>            TProtocol outProt) throws TException {<a name="line.582"></a>
-<span class="sourceLineNo">583</span>          TSaslServerTransport saslServerTransport =<a name="line.583"></a>
-<span class="sourceLineNo">584</span>            (TSaslServerTransport)inProt.getTransport();<a name="line.584"></a>
-<span class="sourceLineNo">585</span>          SaslServer saslServer = saslServerTransport.getSaslServer();<a name="line.585"></a>
-<span class="sourceLineNo">586</span>          String principal = saslServer.getAuthorizationID();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>          hbaseHandler.setEffectiveUser(principal);<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          return p.process(inProt, outProt);<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>    }<a name="line.591"></a>
-<span class="sourceLineNo">592</span><a name="line.592"></a>
-<span class="sourceLineNo">593</span>    if (conf.get(BIND_CONF_KEY) != null &amp;&amp; !implType.canSpecifyBindIP) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      LOG.error("Server types " + Joiner.on(", ").join(<a name="line.594"></a>
-<span class="sourceLineNo">595</span>          ImplType.serversThatCannotSpecifyBindIP()) + " don't support IP " +<a name="line.595"></a>
-<span class="sourceLineNo">596</span>          "address binding at the moment. See " +<a name="line.596"></a>
-<span class="sourceLineNo">597</span>          "https://issues.apache.org/jira/browse/HBASE-2155 for details.");<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      throw new RuntimeException(<a name="line.598"></a>
-<span class="sourceLineNo">599</span>          "-" + BIND_CONF_KEY + " not supported with " + implType);<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>    // Thrift's implementation uses '0' as a placeholder for 'use the default.'<a name="line.602"></a>
-<span class="sourceLineNo">603</span>    int backlog = conf.getInt(BACKLOG_CONF_KEY, 0);<a name="line.603"></a>
-<span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>    if (implType == ImplType.HS_HA || implType == ImplType.NONBLOCKING ||<a name="line.605"></a>
-<span class="sourceLineNo">606</span>        implType == ImplType.THREADED_SELECTOR) {<a name="line.606"></a>
-<span class="sourceLineNo">607</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.607"></a>
-<span class="sourceLineNo">608</span>      TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(<a name="line.608"></a>
-<span class="sourceLineNo">609</span>          new InetSocketAddress(listenAddress, listenPort));<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span>      if (implType == ImplType.NONBLOCKING) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span>        TNonblockingServer.Args serverArgs =<a name="line.612"></a>
-<span class="sourceLineNo">613</span>            new TNonblockingServer.Args(serverTransport);<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        serverArgs.processor(processor)<a name="line.614"></a>
-<span class="sourceLineNo">615</span>                  .transportFactory(transportFactory)<a name="line.615"></a>
-<span class="sourceLineNo">616</span>                  .protocolFactory(protocolFactory);<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        tserver = new TNonblockingServer(serverArgs);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>      } else if (implType == ImplType.HS_HA) {<a name="line.618"></a>
-<span class="sourceLineNo">619</span>        THsHaServer.Args serverArgs = new THsHaServer.Args(serverTransport);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>        ExecutorService executorService = createExecutor(<a name="line.621"></a>
-<span class="sourceLineNo">622</span>            callQueue, serverArgs.getMaxWorkerThreads(), serverArgs.getMaxWorkerThreads());<a name="line.622"></a>
-<span class="sourceLineNo">623</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.623"></a>
-<span class="sourceLineNo">624</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        tserver = new THsHaServer(serverArgs);<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else { // THREADED_SELECTOR<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        TThreadedSelectorServer.Args serverArgs =<a name="line.627"></a>
-<span class="sourceLineNo">628</span>            new HThreadedSelectorServerArgs(serverTransport, conf);<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        CallQueue callQueue = new CallQueue(new LinkedBlockingQueue&lt;&gt;(), metrics);<a name="line.629"></a>
-<span class="sourceLineNo">630</span>        ExecutorService executorService = createExecutor(<a name="line.630"></a>
-<span class="sourceLineNo">631</span>            callQueue, serverArgs.getWorkerThreads(), serverArgs.getWorkerThreads());<a name="line.631"></a>
-<span class="sourceLineNo">632</span>        serverArgs.executorService(executorService).processor(processor)<a name="line.632"></a>
-<span class="sourceLineNo">633</span>                .transportFactory(transportFactory).protocolFactory(protocolFactory);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>        tserver = new TThreadedSelectorServer(serverArgs);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      }<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      LOG.info("starting HBase " + implType.simpleClassName() +<a name="line.636"></a>
-<span class="sourceLineNo">637</span>          " server on " + Integer.toString(listenPort));<a name="line.637"></a>
-<span class="sourceLineNo">638</span>    } else if (implType == ImplType.THREAD_POOL) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      // Thread pool server. Get the IP address to bind to.<a name="line.639"></a>
-<span class="sourceLineNo">640</span>      InetAddress listenAddress = getBindAddress(conf);<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      int readTimeout = conf.getInt(THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY,<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT);<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      TServerTransport serverTransport = new TServerSocket(<a name="line.643"></a>
-<span class="sourceLineNo">644</span>          new TServerSocket.ServerSocketTransportArgs().<a name="line.644"></a>
-<span class="sourceLineNo">645</span>              bindAddr(new InetSocketAddress(listenAddress, listenPort)).backlog(backlog).<a name="line.645"></a>
-<span class="sourceLineNo">646</span>              clientTimeout(readTimeout));<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>      TBoundedThreadPoolServer.Args serverArgs =<a name="line.648"></a>
-<span class="sourceLineNo">649</span>          new TBoundedThreadPoolServer.Args(serverTransport, conf);<a name="line.649"></a>
-<span class="sourceLineNo">650</span>      serverArgs.processor(processor).transportFactory(transportFactory)<a name="line.650"></a>
-<span class="sourceLineNo">651</span>              .protocolFactory(protocolFactory);<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      LOG.info("starting " + ImplType.THREAD_POOL.simpleClassName() + " on "<a name="line.652"></a>
-<span class="sourceLineNo">653</span>          + listenAddress + ":" + Integer.toString(listenPort)<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          + " with readTimeout " + readTimeout + "ms; " + serverArgs);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>      this.tserver = new TBoundedThreadPoolServer(serverArgs, metrics);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>    } else {<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      throw new AssertionError("Unsupported Thrift server implementation: " +<a name="line.657"></a>
-<span class="sourceLineNo">658</span>          implType.simpleClassName());<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>    // A sanity check that we instantiated the right type of server.<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    if (tserver.getClass() != implType.serverClass) {<a name="line.662"></a>
-<span class="sourceLineNo">663</span>      throw new AssertionError("Expected to create Thrift server class " +<a name="line.663"></a>
-<span class="sourceLineNo">664</span>          implType.serverClass.getName() + " but got " +<a name="line.664"></a>
-<span class="sourceLineNo">665</span>          tserver.getClass().getName());<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * Thrift quality of protection configuration key. Valid values can be:<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * auth-conf: authentication, integrity and confidentiality checking<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * auth-int: authentication and integrity checking<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * auth: authentication only<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   *<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * This is used to authenticate the callers and support impersonation.<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * The thrift server and the HBase cluster must run in secure mode.<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  static final String THRIFT_QOP_KEY = "hbase.thrift.security.qop";<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  static final String BACKLOG_CONF_KEY = "hbase.regionserver.thrift.backlog";<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  private static final String DEFAULT_BIND_ADDR = "0.0.0.0";<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  public static final int DEFAULT_LISTEN_PORT = 9090;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>  public static final int HREGION_VERSION = 1;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  static final String THRIFT_SUPPORT_PROXYUSER = "hbase.thrift.support.proxyuser";<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  private final int listenPort;<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  private Configuration conf;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  volatile TServer tserver;<a name="line.211"></a>
+<span class="sourceLineNo">212</span>  volatile Server httpServer;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  private final Hbase.Iface handler;<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  private final ThriftMetrics metrics;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  private final HBaseHandler hbaseHandler;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  private final UserGroupInformation realUser;<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  private SaslUtil.QualityOfProtection qop;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>  private String host;<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private final boolean securityEnabled;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  private final boolean doAsEnabled;<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  private final JvmPauseMonitor pauseMonitor;<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  /** An enum of server implementation selections */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  enum ImplType {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    HS_HA("hsha", true, THsHaServer.class, true),<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    NONBLOCKING("nonblocking", true, TNonblockingServer.class, true),<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    THREAD_POOL("threadpool", false, TBoundedThreadPoolServer.class, true),<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    THREADED_SELECTOR(<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        "threadedselector", true, TThreadedSelectorServer.class, true);<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>    public static final ImplType DEFAULT = THREAD_POOL;<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>    final String option;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    final boolean isAlwaysFramed;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    final Class&lt;? extends TServer&gt; serverClass;<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    final boolean canSpecifyBindIP;<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    ImplType(String option, boolean isAlwaysFramed,<a name="line.241"></a>
+<span class="sourceLineNo">242</span>        Class&lt;? extends TServer&gt; serverClass, boolean canSpecifyBindIP) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      this.option = option;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      this.isAlwaysFramed = isAlwaysFramed;<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      this.serverClass = serverClass;<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      this.canSpecifyBindIP = canSpecifyBindIP;<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>    /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>     * @return &lt;code&gt;-option&lt;/code&gt; so we can get the list of options from<a name="line.250"></a>
+<span class="sourceLineNo">251</span>     *         {@link #values()}<a name="line.251"></a>
+<span class="sourceLineNo">252</span>     */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    @Override<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    public String toString() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      return "-" + option;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    String getDescription() {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      StringBuilder sb = new StringBuilder("Use the " +<a name="line.259"></a>
+<span class="sourceLineNo">260</span>          serverClass.getSimpleName());<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      if (isAlwaysFramed) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        sb.append(" This implies the framed transport.");<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      if (this == DEFAULT) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>        sb.append("This is the default.");<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      return sb.toString();<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>    static OptionGroup createOptionGroup() {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      OptionGroup group = new OptionGroup();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      for (ImplType t : values()) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>        group.addOption(new Option(t.option, t.getDescription()));<a name="line.273"></a>
+<span class="sourceLineNo">274</span>      }<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      return group;<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>    static ImplType getServerImpl(Configuration conf) {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      String confType = conf.get(SERVER_TYPE_CONF_KEY, THREAD_POOL.option);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>      for (ImplType t : values()) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        if (confType.equals(t.option)) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>          return t;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        }<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      throw new AssertionError("Unknown server ImplType.option:" + confType);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>    static void setServerImpl(CommandLine cmd, Configuration conf) {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      ImplType chosenType = null;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      int numChosen = 0;<a name="line.290"></a>
+<span class="sourceLineNo">291</span>      for (ImplType t : values()) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span>        if (cmd.hasOption(t.option)) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>          chosenType = t;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>          ++numChosen;<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>      if (numChosen &lt; 1) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>        LOG.info("Using default thrift server type");<a name="line.298"></a>
+<span class="sourceLineNo">299</span>        chosenType = DEFAULT;<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      } else if (numChosen &gt; 1) {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>        throw new AssertionError("Exactly one option out of " +<a name="line.301"></a>
+<span class="sourceLineNo">302</span>          Arrays.toString(values()) + " has to be specified");<a name="line.302"></a>
+<span class="sourceLineNo">303</span>      }<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      LOG.info("Using thrift server type " + chosenType.option);<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      conf.set(SERVER_TYPE_CONF_KEY, chosenType.option);<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>    public String simpleClassName() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      return serverClass.getSimpleName();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>    public static List&lt;String&gt; serversThatCannotSpecifyBindIP() {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      List&lt;String&gt; l = new ArrayList&lt;&gt;();<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      for (ImplType t : values()) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>        if (!t.canSpecifyBindIP) {<a name="line.315"></a>
+<span class="sourceLineNo">316</span>          l.add(t.simpleClassName());<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>      return l;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>  public ThriftServerRunner(Configuration conf) throws IOException {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    UserProvider userProvider = UserProvider.instantiate(conf);<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    // login the server principal (if using secure Hadoop)<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    securityEnabled = userProvider.isHadoopSecurityEnabled()<a name="line.327"></a>
+<span class="sourceLineNo">328</span>      &amp;&amp; userProvider.isHBaseSecurityEnabled();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    if (securityEnabled) {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      host = Strings.domainNamePointerToHostName(DNS.getDefaultHost(<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        conf.get("hbase.thrift.dns.interface", "default"),<a name="line.331"></a>
+<span class="sourceLineNo">332</span>        conf.get("hbase.thrift.dns.nameserver", "default")));<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      userProvider.login("hbase.thrift.keytab.file",<a name="line.333"></a>
+<span class="sourceLineNo">334</span>        "hbase.thrift.kerberos.principal", host);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    this.conf = HBaseConfiguration.create(conf);<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    this.listenPort = conf.getInt(PORT_CONF_KEY, DEFAULT_LISTEN_PORT);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    this.metrics = new ThriftMetrics(conf, ThriftMetrics.ThriftServerType.ONE);<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    this.pauseMonitor = new JvmPauseMonitor(conf, this.metrics.getSource());<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    this.hbaseHandler = new HBaseHandler(conf, userProvider);<a name="line.340"></a>
+<span class="sourceLineNo">341</span>    this.hbaseHandler.initMetrics(metrics);<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    this.handler = HbaseHandlerMetricsProxy.newInstance(<a name="line.342"></a>
+<span class="sourceLineNo">343</span>      hbaseHandler, metrics, conf);<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    this.realUser = userProvider.getCurrent().getUGI();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    String strQop = conf.get(THRIFT_QOP_KEY);<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    if (strQop != null) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      this.qop = SaslUtil.getQop(strQop);<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    doA

<TRUNCATED>

[13/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html
index 23b678a..c2d61b1 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html
@@ -137,7 +137,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.1992">ThriftServerRunner.IOErrorWithCause</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.1994">ThriftServerRunner.IOErrorWithCause</a>
 extends org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -273,7 +273,7 @@ extends org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>cause</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.1993">cause</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.1995">cause</a></pre>
 </li>
 </ul>
 </li>
@@ -290,7 +290,7 @@ extends org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>IOErrorWithCause</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.1994">IOErrorWithCause</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.1996">IOErrorWithCause</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
 </li>
 </ul>
 </li>
@@ -307,7 +307,7 @@ extends org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>getCause</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.1999">getCause</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.2001">getCause</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
@@ -320,7 +320,7 @@ extends org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.2004">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.2006">equals</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>equals</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.IOError</code></dd>
@@ -333,7 +333,7 @@ extends org.apache.hadoop.hbase.thrift.generated.IOError</pre>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.2018">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.IOErrorWithCause.html#line.2020">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code>hashCode</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hbase.thrift.generated.IOError</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html
index 82d106c..0392c62 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.226">ThriftServerRunner.ImplType</a>
+<pre>static enum <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.227">ThriftServerRunner.ImplType</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a>&gt;</pre>
 <div class="block">An enum of server implementation selections</div>
 </li>
@@ -281,7 +281,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>HS_HA</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.227">HS_HA</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.228">HS_HA</a></pre>
 </li>
 </ul>
 <a name="NONBLOCKING">
@@ -290,7 +290,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>NONBLOCKING</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.228">NONBLOCKING</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.229">NONBLOCKING</a></pre>
 </li>
 </ul>
 <a name="THREAD_POOL">
@@ -299,7 +299,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>THREAD_POOL</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.229">THREAD_POOL</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.230">THREAD_POOL</a></pre>
 </li>
 </ul>
 <a name="THREADED_SELECTOR">
@@ -308,7 +308,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>THREADED_SELECTOR</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.230">THREADED_SELECTOR</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.231">THREADED_SELECTOR</a></pre>
 </li>
 </ul>
 </li>
@@ -325,7 +325,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.233">DEFAULT</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.234">DEFAULT</a></pre>
 </li>
 </ul>
 <a name="option">
@@ -334,7 +334,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>option</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.235">option</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.236">option</a></pre>
 </li>
 </ul>
 <a name="isAlwaysFramed">
@@ -343,7 +343,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>isAlwaysFramed</h4>
-<pre>final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.236">isAlwaysFramed</a></pre>
+<pre>final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.237">isAlwaysFramed</a></pre>
 </li>
 </ul>
 <a name="serverClass">
@@ -352,7 +352,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>serverClass</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.thrift.server.TServer&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.237">serverClass</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends org.apache.thrift.server.TServer&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.238">serverClass</a></pre>
 </li>
 </ul>
 <a name="canSpecifyBindIP">
@@ -361,7 +361,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>canSpecifyBindIP</h4>
-<pre>final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.238">canSpecifyBindIP</a></pre>
+<pre>final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.239">canSpecifyBindIP</a></pre>
 </li>
 </ul>
 </li>
@@ -378,7 +378,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.226">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.227">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -398,7 +398,7 @@ for (ThriftServerRunner.ImplType c : ThriftServerRunner.ImplType.values())
 <ul class="blockList">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.226">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.227">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 
@@ -420,7 +420,7 @@ not permitted.)</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.253">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.254">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a>&gt;</code></dd>
@@ -436,7 +436,7 @@ not permitted.)</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>getDescription</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.257">getDescription</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.258">getDescription</a>()</pre>
 </li>
 </ul>
 <a name="createOptionGroup--">
@@ -445,7 +445,7 @@ not permitted.)</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>createOptionGroup</h4>
-<pre>static&nbsp;org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.269">createOptionGroup</a>()</pre>
+<pre>static&nbsp;org.apache.hbase.thirdparty.org.apache.commons.cli.OptionGroup&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.270">createOptionGroup</a>()</pre>
 </li>
 </ul>
 <a name="getServerImpl-org.apache.hadoop.conf.Configuration-">
@@ -454,7 +454,7 @@ not permitted.)</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerImpl</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.277">getServerImpl</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift">ThriftServerRunner.ImplType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.278">getServerImpl</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="setServerImpl-org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine-org.apache.hadoop.conf.Configuration-">
@@ -463,7 +463,7 @@ not permitted.)</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>setServerImpl</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.287">setServerImpl</a>(org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine&nbsp;cmd,
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.288">setServerImpl</a>(org.apache.hbase.thirdparty.org.apache.commons.cli.CommandLine&nbsp;cmd,
                           org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
@@ -473,7 +473,7 @@ not permitted.)</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>simpleClassName</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.307">simpleClassName</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.308">simpleClassName</a>()</pre>
 </li>
 </ul>
 <a name="serversThatCannotSpecifyBindIP--">
@@ -482,7 +482,7 @@ not permitted.)</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>serversThatCannotSpecifyBindIP</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.311">serversThatCannotSpecifyBindIP</a>()</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html#line.312">serversThatCannotSpecifyBindIP</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html
index 7971ee3..384244d 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.704">ThriftServerRunner.ResultScannerWrapper</a>
+<pre>protected static class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.706">ThriftServerRunner.ResultScannerWrapper</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -210,7 +210,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>scanner</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.706">scanner</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.708">scanner</a></pre>
 </li>
 </ul>
 <a name="sortColumns">
@@ -219,7 +219,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>sortColumns</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.707">sortColumns</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.709">sortColumns</a></pre>
 </li>
 </ul>
 </li>
@@ -236,7 +236,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ResultScannerWrapper</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.708">ResultScannerWrapper</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;resultScanner,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.710">ResultScannerWrapper</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;resultScanner,
                             boolean&nbsp;sortResultColumns)</pre>
 </li>
 </ul>
@@ -254,7 +254,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.714">getScanner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ResultScanner.html" title="interface in org.apache.hadoop.hbase.client">ResultScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.716">getScanner</a>()</pre>
 </li>
 </ul>
 <a name="isColumnSorted--">
@@ -263,7 +263,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isColumnSorted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.718">isColumnSorted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.ResultScannerWrapper.html#line.720">isColumnSorted</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html
index ac53d73..6f2abe0 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.152">ThriftServerRunner</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.153">ThriftServerRunner</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 <div class="block">ThriftServerRunner - this class starts up a Thrift server which implements
@@ -454,7 +454,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.154">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.155">LOG</a></pre>
 </li>
 </ul>
 <a name="DEFAULT_HTTP_MAX_HEADER_SIZE">
@@ -463,7 +463,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_HTTP_MAX_HEADER_SIZE</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.156">DEFAULT_HTTP_MAX_HEADER_SIZE</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.157">DEFAULT_HTTP_MAX_HEADER_SIZE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.DEFAULT_HTTP_MAX_HEADER_SIZE">Constant Field Values</a></dd>
@@ -476,7 +476,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>SERVER_TYPE_CONF_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.158">SERVER_TYPE_CONF_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.159">SERVER_TYPE_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.SERVER_TYPE_CONF_KEY">Constant Field Values</a></dd>
@@ -489,7 +489,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>BIND_CONF_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.161">BIND_CONF_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.162">BIND_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.BIND_CONF_KEY">Constant Field Values</a></dd>
@@ -502,7 +502,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>COMPACT_CONF_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.162">COMPACT_CONF_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.163">COMPACT_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.COMPACT_CONF_KEY">Constant Field Values</a></dd>
@@ -515,7 +515,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>FRAMED_CONF_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.163">FRAMED_CONF_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.164">FRAMED_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.FRAMED_CONF_KEY">Constant Field Values</a></dd>
@@ -528,7 +528,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>MAX_FRAME_SIZE_CONF_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.164">MAX_FRAME_SIZE_CONF_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.165">MAX_FRAME_SIZE_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.MAX_FRAME_SIZE_CONF_KEY">Constant Field Values</a></dd>
@@ -541,7 +541,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>PORT_CONF_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.166">PORT_CONF_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.167">PORT_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.PORT_CONF_KEY">Constant Field Values</a></dd>
@@ -554,7 +554,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>COALESCE_INC_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.167">COALESCE_INC_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.168">COALESCE_INC_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.COALESCE_INC_KEY">Constant Field Values</a></dd>
@@ -567,7 +567,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>USE_HTTP_CONF_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.168">USE_HTTP_CONF_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.169">USE_HTTP_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.USE_HTTP_CONF_KEY">Constant Field Values</a></dd>
@@ -580,7 +580,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>HTTP_MIN_THREADS</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.169">HTTP_MIN_THREADS</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.170">HTTP_MIN_THREADS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.HTTP_MIN_THREADS">Constant Field Values</a></dd>
@@ -593,7 +593,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>HTTP_MAX_THREADS</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.170">HTTP_MAX_THREADS</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.171">HTTP_MAX_THREADS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.HTTP_MAX_THREADS">Constant Field Values</a></dd>
@@ -606,7 +606,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SSL_ENABLED</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.172">THRIFT_SSL_ENABLED</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.173">THRIFT_SSL_ENABLED</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SSL_ENABLED">Constant Field Values</a></dd>
@@ -619,7 +619,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SSL_KEYSTORE_STORE</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.173">THRIFT_SSL_KEYSTORE_STORE</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.174">THRIFT_SSL_KEYSTORE_STORE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SSL_KEYSTORE_STORE">Constant Field Values</a></dd>
@@ -632,7 +632,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SSL_KEYSTORE_PASSWORD</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.174">THRIFT_SSL_KEYSTORE_PASSWORD</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.175">THRIFT_SSL_KEYSTORE_PASSWORD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SSL_KEYSTORE_PASSWORD">Constant Field Values</a></dd>
@@ -645,7 +645,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SSL_KEYSTORE_KEYPASSWORD</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.175">THRIFT_SSL_KEYSTORE_KEYPASSWORD</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.176">THRIFT_SSL_KEYSTORE_KEYPASSWORD</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SSL_KEYSTORE_KEYPASSWORD">Constant Field Values</a></dd>
@@ -658,7 +658,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SSL_EXCLUDE_CIPHER_SUITES</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.176">THRIFT_SSL_EXCLUDE_CIPHER_SUITES</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.177">THRIFT_SSL_EXCLUDE_CIPHER_SUITES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SSL_EXCLUDE_CIPHER_SUITES">Constant Field Values</a></dd>
@@ -671,7 +671,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SSL_INCLUDE_CIPHER_SUITES</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.177">THRIFT_SSL_INCLUDE_CIPHER_SUITES</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.178">THRIFT_SSL_INCLUDE_CIPHER_SUITES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SSL_INCLUDE_CIPHER_SUITES">Constant Field Values</a></dd>
@@ -684,7 +684,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SSL_EXCLUDE_PROTOCOLS</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.178">THRIFT_SSL_EXCLUDE_PROTOCOLS</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.179">THRIFT_SSL_EXCLUDE_PROTOCOLS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SSL_EXCLUDE_PROTOCOLS">Constant Field Values</a></dd>
@@ -697,7 +697,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SSL_INCLUDE_PROTOCOLS</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.179">THRIFT_SSL_INCLUDE_PROTOCOLS</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.180">THRIFT_SSL_INCLUDE_PROTOCOLS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SSL_INCLUDE_PROTOCOLS">Constant Field Values</a></dd>
@@ -710,7 +710,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.186">THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.187">THRIFT_SERVER_SOCKET_READ_TIMEOUT_KEY</a></pre>
 <div class="block">Amount of time in milliseconds before a server thread will timeout
  waiting for client to send data on a connected socket. Currently,
  applies only to TBoundedThreadPoolServer</div>
@@ -726,7 +726,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.188">THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.189">THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SERVER_SOCKET_READ_TIMEOUT_DEFAULT">Constant Field Values</a></dd>
@@ -739,7 +739,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_QOP_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.200">THRIFT_QOP_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.201">THRIFT_QOP_KEY</a></pre>
 <div class="block">Thrift quality of protection configuration key. Valid values can be:
  auth-conf: authentication, integrity and confidentiality checking
  auth-int: authentication and integrity checking
@@ -759,7 +759,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>BACKLOG_CONF_KEY</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.201">BACKLOG_CONF_KEY</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.202">BACKLOG_CONF_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.BACKLOG_CONF_KEY">Constant Field Values</a></dd>
@@ -772,7 +772,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_BIND_ADDR</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.203">DEFAULT_BIND_ADDR</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.204">DEFAULT_BIND_ADDR</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.DEFAULT_BIND_ADDR">Constant Field Values</a></dd>
@@ -785,7 +785,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_LISTEN_PORT</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.204">DEFAULT_LISTEN_PORT</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.205">DEFAULT_LISTEN_PORT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.DEFAULT_LISTEN_PORT">Constant Field Values</a></dd>
@@ -798,7 +798,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>HREGION_VERSION</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.205">HREGION_VERSION</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.206">HREGION_VERSION</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.HREGION_VERSION">Constant Field Values</a></dd>
@@ -811,7 +811,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>THRIFT_SUPPORT_PROXYUSER</h4>
-<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.206">THRIFT_SUPPORT_PROXYUSER</a></pre>
+<pre>static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.207">THRIFT_SUPPORT_PROXYUSER</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.thrift.ThriftServerRunner.THRIFT_SUPPORT_PROXYUSER">Constant Field Values</a></dd>
@@ -824,7 +824,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>listenPort</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.207">listenPort</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.208">listenPort</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -833,7 +833,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <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/thrift/ThriftServerRunner.html#line.209">conf</a></pre>
+<pre>private&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.210">conf</a></pre>
 </li>
 </ul>
 <a name="tserver">
@@ -842,7 +842,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>tserver</h4>
-<pre>volatile&nbsp;org.apache.thrift.server.TServer <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.210">tserver</a></pre>
+<pre>volatile&nbsp;org.apache.thrift.server.TServer <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.211">tserver</a></pre>
 </li>
 </ul>
 <a name="httpServer">
@@ -851,7 +851,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>httpServer</h4>
-<pre>volatile&nbsp;org.eclipse.jetty.server.Server <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.211">httpServer</a></pre>
+<pre>volatile&nbsp;org.eclipse.jetty.server.Server <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.212">httpServer</a></pre>
 </li>
 </ul>
 <a name="handler">
@@ -860,7 +860,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>handler</h4>
-<pre>private final&nbsp;org.apache.hadoop.hbase.thrift.generated.Hbase.Iface <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.212">handler</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.hbase.thrift.generated.Hbase.Iface <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.213">handler</a></pre>
 </li>
 </ul>
 <a name="metrics">
@@ -869,7 +869,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>metrics</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.html" title="class in org.apache.hadoop.hbase.thrift">ThriftMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.213">metrics</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.html" title="class in org.apache.hadoop.hbase.thrift">ThriftMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.214">metrics</a></pre>
 </li>
 </ul>
 <a name="hbaseHandler">
@@ -878,7 +878,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>hbaseHandler</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServerRunner.HBaseHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.214">hbaseHandler</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.HBaseHandler.html" title="class in org.apache.hadoop.hbase.thrift">ThriftServerRunner.HBaseHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.215">hbaseHandler</a></pre>
 </li>
 </ul>
 <a name="realUser">
@@ -887,7 +887,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>realUser</h4>
-<pre>private final&nbsp;org.apache.hadoop.security.UserGroupInformation <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.215">realUser</a></pre>
+<pre>private final&nbsp;org.apache.hadoop.security.UserGroupInformation <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.216">realUser</a></pre>
 </li>
 </ul>
 <a name="qop">
@@ -896,7 +896,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>qop</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security">SaslUtil.QualityOfProtection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.217">qop</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security">SaslUtil.QualityOfProtection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.218">qop</a></pre>
 </li>
 </ul>
 <a name="host">
@@ -905,7 +905,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>host</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.218">host</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.219">host</a></pre>
 </li>
 </ul>
 <a name="securityEnabled">
@@ -914,7 +914,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>securityEnabled</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.220">securityEnabled</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.221">securityEnabled</a></pre>
 </li>
 </ul>
 <a name="doAsEnabled">
@@ -923,7 +923,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>doAsEnabled</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.221">doAsEnabled</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.222">doAsEnabled</a></pre>
 </li>
 </ul>
 <a name="pauseMonitor">
@@ -932,7 +932,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>pauseMonitor</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.223">pauseMonitor</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.224">pauseMonitor</a></pre>
 </li>
 </ul>
 </li>
@@ -949,7 +949,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ThriftServerRunner</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.323">ThriftServerRunner</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.324">ThriftServerRunner</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -971,7 +971,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>checkHttpSecurity</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.373">checkHttpSecurity</a>(<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security">SaslUtil.QualityOfProtection</a>&nbsp;qop,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.374">checkHttpSecurity</a>(<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security">SaslUtil.QualityOfProtection</a>&nbsp;qop,
                                org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
@@ -981,7 +981,7 @@ implements <a href="https://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/thrift/ThriftServerRunner.html#line.386">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.387">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://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="https://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>
@@ -994,7 +994,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.411">shutdown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.412">shutdown</a>()</pre>
 </li>
 </ul>
 <a name="setupHTTPServer--">
@@ -1003,7 +1003,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>setupHTTPServer</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.430">setupHTTPServer</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.431">setupHTTPServer</a>()
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1017,7 +1017,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>setupServer</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.522">setupServer</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.524">setupServer</a>()
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Setting up the thrift TServer</div>
 <dl>
@@ -1032,7 +1032,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>getProtocolFactory</h4>
-<pre>private&nbsp;org.apache.thrift.protocol.TProtocolFactory&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.673">getProtocolFactory</a>()</pre>
+<pre>private&nbsp;org.apache.thrift.protocol.TProtocolFactory&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.675">getProtocolFactory</a>()</pre>
 </li>
 </ul>
 <a name="createExecutor-java.util.concurrent.BlockingQueue-int-int-">
@@ -1041,7 +1041,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>createExecutor</h4>
-<pre><a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.687">createExecutor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&gt;&nbsp;callQueue,
+<pre><a href="https://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;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.689">createExecutor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/BlockingQueue.html?is-external=true" title="class or interface in java.util.concurrent">BlockingQueue</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&gt;&nbsp;callQueue,
                                int&nbsp;minWorkers,
                                int&nbsp;maxWorkers)</pre>
 </li>
@@ -1052,7 +1052,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>getBindAddress</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.698">getBindAddress</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html?is-external=true" title="class or interface in java.net">InetAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.700">getBindAddress</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1066,7 +1066,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>getIOError</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.thrift.generated.IOError&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.1957">getIOError</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;throwable)</pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.thrift.generated.IOError&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.1959">getIOError</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;throwable)</pre>
 </li>
 </ul>
 <a name="addAttributes-org.apache.hadoop.hbase.client.OperationWithAttributes-java.util.Map-">
@@ -1075,7 +1075,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>addAttributes</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.1966">addAttributes</a>(<a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html" title="class in org.apache.hadoop.hbase.client">OperationWithAttributes</a>&nbsp;op,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.1968">addAttributes</a>(<a href="../../../../../org/apache/hadoop/hbase/client/OperationWithAttributes.html" title="class in org.apache.hadoop.hbase.client">OperationWithAttributes</a>&nbsp;op,
                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/nio/ByteBuffer.html?is-external=true" title="class or interface in java.nio">ByteBuffer</a>&gt;&nbsp;attributes)</pre>
 <div class="block">Adds all the attributes into the Operation object</div>
 </li>
@@ -1086,7 +1086,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockListLast">
 <li class="blockList">
 <h4>registerFilters</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.1978">registerFilters</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/thrift/ThriftServerRunner.html#line.1980">registerFilters</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 </li>

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html b/devapidocs/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html
index 3edef5d..dab7847 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html
@@ -517,7 +517,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil
 <ul class="blockList">
 <li class="blockList">
 <h4>setupRegionReplicaReplication</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.147">setupRegionReplicaReplication</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.160">setupRegionReplicaReplication</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create replication peer for replicating to region replicas if needed.</div>
 <dl>
@@ -534,7 +534,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil
 <ul class="blockList">
 <li class="blockList">
 <h4>isRegionReplicaReplicationEnabled</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.173">isRegionReplicaReplicationEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.186">isRegionReplicaReplicationEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="isRegionReplicaWaitForPrimaryFlushEnabled-org.apache.hadoop.conf.Configuration-">
@@ -543,7 +543,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil
 <ul class="blockList">
 <li class="blockList">
 <h4>isRegionReplicaWaitForPrimaryFlushEnabled</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.178">isRegionReplicaWaitForPrimaryFlushEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.191">isRegionReplicaWaitForPrimaryFlushEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="isRegionReplicaStoreFileRefreshEnabled-org.apache.hadoop.conf.Configuration-">
@@ -552,7 +552,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil
 <ul class="blockList">
 <li class="blockList">
 <h4>isRegionReplicaStoreFileRefreshEnabled</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.183">isRegionReplicaStoreFileRefreshEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.196">isRegionReplicaStoreFileRefreshEnabled</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="getRegionReplicaStoreFileRefreshMultiplier-org.apache.hadoop.conf.Configuration-">
@@ -561,7 +561,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionReplicaStoreFileRefreshMultiplier</h4>
-<pre>public static&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.188">getRegionReplicaStoreFileRefreshMultiplier</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.201">getRegionReplicaStoreFileRefreshMultiplier</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="getReplicationPeerId--">
@@ -570,7 +570,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/RegionReplicaUtil
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getReplicationPeerId</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.196">getReplicationPeerId</a>()</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ServerRegionReplicaUtil.html#line.209">getReplicationPeerId</a>()</pre>
 <div class="block">Return the peer id used for replicating to secondary region replicas</div>
 </li>
 </ul>

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

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

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/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 5aca783..4e5964d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "914de1141699142bce1486468a742233d9440b23";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "46cb5dfa226892fd2580f26ce9ce77225bd7e67c";<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 = "Fri Apr 20 14:39:14 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Sat Apr 21 14:39:09 UTC 2018";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "8a7d9057695428a69e4cd5d02ff0686c";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "68b5fffa22b0b5090184aec884a7bdc1";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[10/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
index c467ef4..d4b94dd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
@@ -165,427 +165,442 @@
 <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>   * Create a Store File Info from an HFileLink<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   * @param conf the {@link Configuration} to use<a name="line.160"></a>
-<span class="sourceLineNo">161</span>   * @param fs The current file system to use.<a name="line.161"></a>
+<span class="sourceLineNo">160</span>   * @param conf The {@link Configuration} to use<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * @param fs The current file system to use<a name="line.161"></a>
 <span class="sourceLineNo">162</span>   * @param fileStatus The {@link FileStatus} of the file<a name="line.162"></a>
 <span class="sourceLineNo">163</span>   */<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  public StoreFileInfo(final Configuration conf, final FileSystem fs, final FileStatus fileStatus,<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      final HFileLink link)<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      throws IOException {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    this.fs = fs;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    this.conf = conf;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    // initialPath can be null only if we get a link.<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    this.initialPath = (fileStatus == null) ? null : fileStatus.getPath();<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      // HFileLink<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    this.reference = null;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    this.link = link;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  }<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>   * Create a Store File Info from an HFileLink<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * @param conf<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * @param fs<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @param fileStatus<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   * @param reference<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   * @throws IOException<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   */<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  public StoreFileInfo(final Configuration conf, final FileSystem fs, final FileStatus fileStatus,<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      final Reference reference)<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      throws IOException {<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    this.fs = fs;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    this.conf = conf;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    this.initialPath = fileStatus.getPath();<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    this.createdTimestamp = fileStatus.getModificationTime();<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    this.reference = reference;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    this.link = null;<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>  /**<a name="line.195"></a>
-<span class="sourceLineNo">196</span>   * Sets the region coprocessor env.<a name="line.196"></a>
-<span class="sourceLineNo">197</span>   * @param coprocessorHost<a name="line.197"></a>
-<span class="sourceLineNo">198</span>   */<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  public void setRegionCoprocessorHost(RegionCoprocessorHost coprocessorHost) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    this.coprocessorHost = coprocessorHost;<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>  /*<a name="line.203"></a>
-<span class="sourceLineNo">204</span>   * @return the Reference object associated to this StoreFileInfo.<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   *         null if the StoreFile is not a reference.<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   */<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  public Reference getReference() {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    return this.reference;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  }<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  /** @return True if the store file is a Reference */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  public boolean isReference() {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    return this.reference != null;<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
-<span class="sourceLineNo">215</span><a name="line.215"></a>
-<span class="sourceLineNo">216</span>  /** @return True if the store file is a top Reference */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public boolean isTopReference() {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    return this.reference != null &amp;&amp; Reference.isTopFileRegion(this.reference.getFileRegion());<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>  /** @return True if the store file is a link */<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  public boolean isLink() {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    return this.link != null &amp;&amp; this.reference == null;<a name="line.223"></a>
+<span class="sourceLineNo">165</span>      final HFileLink link) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    this.fs = fs;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    this.conf = conf;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    // initialPath can be null only if we get a link.<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    this.initialPath = (fileStatus == null) ? null : fileStatus.getPath();<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      // HFileLink<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    this.reference = null;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    this.link = link;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>  /**<a name="line.175"></a>
+<span class="sourceLineNo">176</span>   * Create a Store File Info from an HFileLink<a name="line.176"></a>
+<span class="sourceLineNo">177</span>   * @param conf The {@link Configuration} to use<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * @param fs The current file system to use<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @param fileStatus The {@link FileStatus} of the file<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   * @param reference The reference instance<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public StoreFileInfo(final Configuration conf, final FileSystem fs, final FileStatus fileStatus,<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      final Reference reference) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    this.fs = fs;<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    this.conf = conf;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    this.initialPath = fileStatus.getPath();<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    this.createdTimestamp = fileStatus.getModificationTime();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    this.reference = reference;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    this.link = null;<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  /**<a name="line.192"></a>
+<span class="sourceLineNo">193</span>   * Create a Store File Info from an HFileLink and a Reference<a name="line.193"></a>
+<span class="sourceLineNo">194</span>   * @param conf The {@link Configuration} to use<a name="line.194"></a>
+<span class="sourceLineNo">195</span>   * @param fs The current file system to use<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * @param fileStatus The {@link FileStatus} of the file<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   * @param reference The reference instance<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * @param link The link instance<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   */<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  public StoreFileInfo(final Configuration conf, final FileSystem fs, final FileStatus fileStatus,<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      final Reference reference, final HFileLink link) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    this.fs = fs;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    this.conf = conf;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    this.initialPath = fileStatus.getPath();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    this.createdTimestamp = fileStatus.getModificationTime();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    this.reference = reference;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    this.link = link;<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  /**<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   * Sets the region coprocessor env.<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   * @param coprocessorHost<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   */<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  public void setRegionCoprocessorHost(RegionCoprocessorHost coprocessorHost) {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    this.coprocessorHost = coprocessorHost;<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  /*<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * @return the Reference object associated to this StoreFileInfo.<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   *         null if the StoreFile is not a reference.<a name="line.220"></a>
+<span class="sourceLineNo">221</span>   */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  public Reference getReference() {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    return this.reference;<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>  /** @return the HDFS block distribution */<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  public HDFSBlocksDistribution getHDFSBlockDistribution() {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    return this.hdfsBlocksDistribution;<a name="line.228"></a>
+<span class="sourceLineNo">226</span>  /** @return True if the store file is a Reference */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  public boolean isReference() {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    return this.reference != null;<a name="line.228"></a>
 <span class="sourceLineNo">229</span>  }<a name="line.229"></a>
 <span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * Open a Reader for the StoreFile<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * @param fs The current file system to use.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * @param cacheConf The cache configuration and block cache reference.<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * @return The StoreFile.Reader for the file<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  public StoreFileReader open(FileSystem fs, CacheConfig cacheConf, boolean canUseDropBehind,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      long readahead, boolean isPrimaryReplicaStoreFile, AtomicInteger refCount, boolean shared)<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      throws IOException {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    FSDataInputStreamWrapper in;<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    FileStatus status;<a name="line.241"></a>
-<span class="sourceLineNo">242</span><a name="line.242"></a>
-<span class="sourceLineNo">243</span>    final boolean doDropBehind = canUseDropBehind &amp;&amp; cacheConf.shouldDropBehindCompaction();<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    if (this.link != null) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // HFileLink<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      in = new FSDataInputStreamWrapper(fs, this.link, doDropBehind, readahead);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      status = this.link.getFileStatus(fs);<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    } else if (this.reference != null) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      // HFile Reference<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      Path referencePath = getReferredToFile(this.getPath());<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      in = new FSDataInputStreamWrapper(fs, referencePath, doDropBehind, readahead);<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      status = fs.getFileStatus(referencePath);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    } else {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      in = new FSDataInputStreamWrapper(fs, this.getPath(), doDropBehind, readahead);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      status = fs.getFileStatus(initialPath);<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    long length = status.getLen();<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    hdfsBlocksDistribution = computeHDFSBlocksDistribution(fs);<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>    StoreFileReader reader = null;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    if (this.coprocessorHost != null) {<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      reader = this.coprocessorHost.preStoreFileReaderOpen(fs, this.getPath(), in, length,<a name="line.262"></a>
-<span class="sourceLineNo">263</span>        cacheConf, reference);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    if (reader == null) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      if (this.reference != null) {<a name="line.266"></a>
-<span class="sourceLineNo">267</span>        reader = new HalfStoreFileReader(fs, this.getPath(), in, length, cacheConf, reference,<a name="line.267"></a>
-<span class="sourceLineNo">268</span>            isPrimaryReplicaStoreFile, refCount, shared, conf);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      } else {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        reader = new StoreFileReader(fs, status.getPath(), in, length, cacheConf,<a name="line.270"></a>
-<span class="sourceLineNo">271</span>            isPrimaryReplicaStoreFile, refCount, shared, conf);<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    if (this.coprocessorHost != null) {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      reader = this.coprocessorHost.postStoreFileReaderOpen(fs, this.getPath(), in, length,<a name="line.275"></a>
-<span class="sourceLineNo">276</span>        cacheConf, reference, reader);<a name="line.276"></a>
-<span class="sourceLineNo">277</span>    }<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return reader;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  /**<a name="line.281"></a>
-<span class="sourceLineNo">282</span>   * Compute the HDFS Block Distribution for this StoreFile<a name="line.282"></a>
-<span class="sourceLineNo">283</span>   */<a name="line.283"></a>
-<span class="sourceLineNo">284</span>  public HDFSBlocksDistribution computeHDFSBlocksDistribution(final FileSystem fs)<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      throws IOException {<a name="line.285"></a>
-<span class="sourceLineNo">286</span>    // guard against the case where we get the FileStatus from link, but by the time we<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    // call compute the file is moved again<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    if (this.link != null) {<a name="line.288"></a>
-<span class="sourceLineNo">289</span>      FileNotFoundException exToThrow = null;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      for (int i = 0; i &lt; this.link.getLocations().length; i++) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        try {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>          return computeHDFSBlocksDistributionInternal(fs);<a name="line.292"></a>
-<span class="sourceLineNo">293</span>        } catch (FileNotFoundException ex) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>          // try the other location<a name="line.294"></a>
-<span class="sourceLineNo">295</span>          exToThrow = ex;<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>      throw exToThrow;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    } else {<a name="line.299"></a>
-<span class="sourceLineNo">300</span>      return computeHDFSBlocksDistributionInternal(fs);<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>  private HDFSBlocksDistribution computeHDFSBlocksDistributionInternal(final FileSystem fs)<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      throws IOException {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    FileStatus status = getReferencedFileStatus(fs);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    if (this.reference != null) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      return computeRefFileHDFSBlockDistribution(fs, reference, status);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    } else {<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      return FSUtils.computeHDFSBlocksDistribution(fs, status, 0, status.getLen());<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><a name="line.313"></a>
-<span class="sourceLineNo">314</span>  /**<a name="line.314"></a>
-<span class="sourceLineNo">315</span>   * Get the {@link FileStatus} of the file referenced by this StoreFileInfo<a name="line.315"></a>
-<span class="sourceLineNo">316</span>   * @param fs The current file system to use.<a name="line.316"></a>
-<span class="sourceLineNo">317</span>   * @return The {@link FileStatus} of the file referenced by this StoreFileInfo<a name="line.317"></a>
-<span class="sourceLineNo">318</span>   */<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  public FileStatus getReferencedFileStatus(final FileSystem fs) throws IOException {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    FileStatus status;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    if (this.reference != null) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      if (this.link != null) {<a name="line.322"></a>
-<span class="sourceLineNo">323</span>        FileNotFoundException exToThrow = null;<a name="line.323"></a>
-<span class="sourceLineNo">324</span>        for (int i = 0; i &lt; this.link.getLocations().length; i++) {<a name="line.324"></a>
-<span class="sourceLineNo">325</span>          // HFileLink Reference<a name="line.325"></a>
-<span class="sourceLineNo">326</span>          try {<a name="line.326"></a>
-<span class="sourceLineNo">327</span>            return link.getFileStatus(fs);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>          } catch (FileNotFoundException ex) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>            // try the other location<a name="line.329"></a>
-<span class="sourceLineNo">330</span>            exToThrow = ex;<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>        throw exToThrow;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      } else {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        // HFile Reference<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        Path referencePath = getReferredToFile(this.getPath());<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        status = fs.getFileStatus(referencePath);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      }<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    } else {<a name="line.339"></a>
-<span class="sourceLineNo">340</span>      if (this.link != null) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>        FileNotFoundException exToThrow = null;<a name="line.341"></a>
-<span class="sourceLineNo">342</span>        for (int i = 0; i &lt; this.link.getLocations().length; i++) {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>          // HFileLink<a name="line.343"></a>
-<span class="sourceLineNo">344</span>          try {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>            return link.getFileStatus(fs);<a name="line.345"></a>
-<span class="sourceLineNo">346</span>          } catch (FileNotFoundException ex) {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>            // try the other location<a name="line.347"></a>
-<span class="sourceLineNo">348</span>            exToThrow = ex;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>          }<a name="line.349"></a>
-<span class="sourceLineNo">350</span>        }<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        throw exToThrow;<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      } else {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>        status = fs.getFileStatus(initialPath);<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>    return status;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  /** @return The {@link Path} of the file */<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  public Path getPath() {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    return initialPath;<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>  /** @return The {@link FileStatus} of the file */<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  public FileStatus getFileStatus() throws IOException {<a name="line.365"></a>
-<span class="sourceLineNo">366</span>    return getReferencedFileStatus(fs);<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>  /** @return Get the modification time of the file. */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public long getModificationTime() throws IOException {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return getFileStatus().getModificationTime();<a name="line.371"></a>
+<span class="sourceLineNo">231</span>  /** @return True if the store file is a top Reference */<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  public boolean isTopReference() {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    return this.reference != null &amp;&amp; Reference.isTopFileRegion(this.reference.getFileRegion());<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>  /** @return True if the store file is a link */<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  public boolean isLink() {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    return this.link != null &amp;&amp; this.reference == null;<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>  /** @return the HDFS block distribution */<a name="line.241"></a>
+<span class="sourceLineNo">242</span>  public HDFSBlocksDistribution getHDFSBlockDistribution() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    return this.hdfsBlocksDistribution;<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>  /**<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   * Open a Reader for the StoreFile<a name="line.247"></a>
+<span class="sourceLineNo">248</span>   * @param fs The current file system to use.<a name="line.248"></a>
+<span class="sourceLineNo">249</span>   * @param cacheConf The cache configuration and block cache reference.<a name="line.249"></a>
+<span class="sourceLineNo">250</span>   * @return The StoreFile.Reader for the file<a name="line.250"></a>
+<span class="sourceLineNo">251</span>   */<a name="line.251"></a>
+<span class="sourceLineNo">252</span>  public StoreFileReader open(FileSystem fs, CacheConfig cacheConf, boolean canUseDropBehind,<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      long readahead, boolean isPrimaryReplicaStoreFile, AtomicInteger refCount, boolean shared)<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      throws IOException {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    FSDataInputStreamWrapper in;<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    FileStatus status;<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    final boolean doDropBehind = canUseDropBehind &amp;&amp; cacheConf.shouldDropBehindCompaction();<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    if (this.link != null) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      // HFileLink<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      in = new FSDataInputStreamWrapper(fs, this.link, doDropBehind, readahead);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      status = this.link.getFileStatus(fs);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    } else if (this.reference != null) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      // HFile Reference<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      Path referencePath = getReferredToFile(this.getPath());<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      in = new FSDataInputStreamWrapper(fs, referencePath, doDropBehind, readahead);<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      status = fs.getFileStatus(referencePath);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>    } else {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      in = new FSDataInputStreamWrapper(fs, this.getPath(), doDropBehind, readahead);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      status = fs.getFileStatus(initialPath);<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    long length = status.getLen();<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    hdfsBlocksDistribution = computeHDFSBlocksDistribution(fs);<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>    StoreFileReader reader = null;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    if (this.coprocessorHost != null) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>      reader = this.coprocessorHost.preStoreFileReaderOpen(fs, this.getPath(), in, length,<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        cacheConf, reference);<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    }<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    if (reader == null) {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      if (this.reference != null) {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        reader = new HalfStoreFileReader(fs, this.getPath(), in, length, cacheConf, reference,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>            isPrimaryReplicaStoreFile, refCount, shared, conf);<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      } else {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        reader = new StoreFileReader(fs, status.getPath(), in, length, cacheConf,<a name="line.285"></a>
+<span class="sourceLineNo">286</span>            isPrimaryReplicaStoreFile, refCount, shared, conf);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      }<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    if (this.coprocessorHost != null) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      reader = this.coprocessorHost.postStoreFileReaderOpen(fs, this.getPath(), in, length,<a name="line.290"></a>
+<span class="sourceLineNo">291</span>        cacheConf, reference, reader);<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    }<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    return reader;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>  }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>  /**<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * Compute the HDFS Block Distribution for this StoreFile<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public HDFSBlocksDistribution computeHDFSBlocksDistribution(final FileSystem fs)<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      throws IOException {<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    // guard against the case where we get the FileStatus from link, but by the time we<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    // call compute the file is moved again<a name="line.302"></a>
+<span class="sourceLineNo">303</span>    if (this.link != null) {<a name="line.303"></a>
+<span class="sourceLineNo">304</span>      FileNotFoundException exToThrow = null;<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      for (int i = 0; i &lt; this.link.getLocations().length; i++) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>        try {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>          return computeHDFSBlocksDistributionInternal(fs);<a name="line.307"></a>
+<span class="sourceLineNo">308</span>        } catch (FileNotFoundException ex) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>          // try the other location<a name="line.309"></a>
+<span class="sourceLineNo">310</span>          exToThrow = ex;<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>      throw exToThrow;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    } else {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      return computeHDFSBlocksDistributionInternal(fs);<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    }<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>  private HDFSBlocksDistribution computeHDFSBlocksDistributionInternal(final FileSystem fs)<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      throws IOException {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    FileStatus status = getReferencedFileStatus(fs);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    if (this.reference != null) {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>      return computeRefFileHDFSBlockDistribution(fs, reference, status);<a name="line.323"></a>
+<span class="sourceLineNo">324</span>    } else {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>      return FSUtils.computeHDFSBlocksDistribution(fs, status, 0, status.getLen());<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    }<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
+<span class="sourceLineNo">328</span><a name="line.328"></a>
+<span class="sourceLineNo">329</span>  /**<a name="line.329"></a>
+<span class="sourceLineNo">330</span>   * Get the {@link FileStatus} of the file referenced by this StoreFileInfo<a name="line.330"></a>
+<span class="sourceLineNo">331</span>   * @param fs The current file system to use.<a name="line.331"></a>
+<span class="sourceLineNo">332</span>   * @return The {@link FileStatus} of the file referenced by this StoreFileInfo<a name="line.332"></a>
+<span class="sourceLineNo">333</span>   */<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public FileStatus getReferencedFileStatus(final FileSystem fs) throws IOException {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    FileStatus status;<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    if (this.reference != null) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      if (this.link != null) {<a name="line.337"></a>
+<span class="sourceLineNo">338</span>        FileNotFoundException exToThrow = null;<a name="line.338"></a>
+<span class="sourceLineNo">339</span>        for (int i = 0; i &lt; this.link.getLocations().length; i++) {<a name="line.339"></a>
+<span class="sourceLineNo">340</span>          // HFileLink Reference<a name="line.340"></a>
+<span class="sourceLineNo">341</span>          try {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>            return link.getFileStatus(fs);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>          } catch (FileNotFoundException ex) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>            // try the other location<a name="line.344"></a>
+<span class="sourceLineNo">345</span>            exToThrow = ex;<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>        throw exToThrow;<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      } else {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>        // HFile Reference<a name="line.350"></a>
+<span class="sourceLineNo">351</span>        Path referencePath = getReferredToFile(this.getPath());<a name="line.351"></a>
+<span class="sourceLineNo">352</span>        status = fs.getFileStatus(referencePath);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      }<a name="line.353"></a>
+<span class="sourceLineNo">354</span>    } else {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>      if (this.link != null) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>        FileNotFoundException exToThrow = null;<a name="line.356"></a>
+<span class="sourceLineNo">357</span>        for (int i = 0; i &lt; this.link.getLocations().length; i++) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>          // HFileLink<a name="line.358"></a>
+<span class="sourceLineNo">359</span>          try {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>            return link.getFileStatus(fs);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>          } catch (FileNotFoundException ex) {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>            // try the other location<a name="line.362"></a>
+<span class="sourceLineNo">363</span>            exToThrow = ex;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>          }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        }<a name="line.365"></a>
+<span class="sourceLineNo">366</span>        throw exToThrow;<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      } else {<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        status = fs.getFileStatus(initialPath);<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>    return status;<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 String toString() {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>    return this.getPath() +<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      (isReference() ? "-" + getReferredToFile(this.getPath()) + "-" + reference : "");<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>  /**<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   * @param path Path to check.<a name="line.381"></a>
-<span class="sourceLineNo">382</span>   * @return True if the path has format of a HFile.<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   */<a name="line.383"></a>
-<span class="sourceLineNo">384</span>  public static boolean isHFile(final Path path) {<a name="line.384"></a>
-<span class="sourceLineNo">385</span>    return isHFile(path.getName());<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>  public static boolean isHFile(final String fileName) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    Matcher m = HFILE_NAME_PATTERN.matcher(fileName);<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    return m.matches() &amp;&amp; m.groupCount() &gt; 0;<a name="line.390"></a>
-<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>  /**<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @param path Path to check.<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   * @return True if the path has format of a del file.<a name="line.395"></a>
-<span class="sourceLineNo">396</span>   */<a name="line.396"></a>
-<span class="sourceLineNo">397</span>  public static boolean isDelFile(final Path path) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    return isDelFile(path.getName());<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  }<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>  /**<a name="line.401"></a>
-<span class="sourceLineNo">402</span>   * @param fileName Sting version of path to validate.<a name="line.402"></a>
-<span class="sourceLineNo">403</span>   * @return True if the file name has format of a del file.<a name="line.403"></a>
-<span class="sourceLineNo">404</span>   */<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  public static boolean isDelFile(final String fileName) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span>    Matcher m = DELFILE_NAME_PATTERN.matcher(fileName);<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    return m.matches() &amp;&amp; m.groupCount() &gt; 0;<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>   * @param path Path to check.<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   * @return True if the path has format of a HStoreFile reference.<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   */<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  public static boolean isReference(final Path path) {<a name="line.414"></a>
-<span class="sourceLineNo">415</span>    return isReference(path.getName());<a name="line.415"></a>
-<span class="sourceLineNo">416</span>  }<a name="line.416"></a>
-<span class="sourceLineNo">417</span><a name="line.417"></a>
-<span class="sourceLineNo">418</span>  /**<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   * @param name file name to check.<a name="line.419"></a>
-<span class="sourceLineNo">420</span>   * @return True if the path has format of a HStoreFile reference.<a name="line.420"></a>
-<span class="sourceLineNo">421</span>   */<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  public static boolean isReference(final String name) {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>    Matcher m = REF_NAME_PATTERN.matcher(name);<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    return m.matches() &amp;&amp; m.groupCount() &gt; 1;<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>  /**<a name="line.427"></a>
-<span class="sourceLineNo">428</span>   * @return timestamp when this file was created (as returned by filesystem)<a name="line.428"></a>
-<span class="sourceLineNo">429</span>   */<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  public long getCreatedTimestamp() {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>    return createdTimestamp;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  }<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  /*<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * Return path to the file referred to by a Reference.  Presumes a directory<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * hierarchy of &lt;code&gt;${hbase.rootdir}/data/${namespace}/tablename/regionname/familyname&lt;/code&gt;.<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * @param p Path to a Reference file.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * @return Calculated path to parent region file.<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   * @throws IllegalArgumentException when path regex fails to match.<a name="line.439"></a>
-<span class="sourceLineNo">440</span>   */<a name="line.440"></a>
-<span class="sourceLineNo">441</span>  public static Path getReferredToFile(final Path p) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    Matcher m = REF_NAME_PATTERN.matcher(p.getName());<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    if (m == null || !m.matches()) {<a name="line.443"></a>
-<span class="sourceLineNo">444</span>      LOG.warn("Failed match of store file name " + p.toString());<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      throw new IllegalArgumentException("Failed match of store file name " +<a name="line.445"></a>
-<span class="sourceLineNo">446</span>          p.toString());<a name="line.446"></a>
-<span class="sourceLineNo">447</span>    }<a name="line.447"></a>
+<span class="sourceLineNo">374</span>  /** @return The {@link Path} of the file */<a name="line.374"></a>
+<span class="sourceLineNo">375</span>  public Path getPath() {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    return initialPath;<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>  /** @return The {@link FileStatus} of the file */<a name="line.379"></a>
+<span class="sourceLineNo">380</span>  public FileStatus getFileStatus() throws IOException {<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    return getReferencedFileStatus(fs);<a name="line.381"></a>
+<span class="sourceLineNo">382</span>  }<a name="line.382"></a>
+<span class="sourceLineNo">383</span><a name="line.383"></a>
+<span class="sourceLineNo">384</span>  /** @return Get the modification time of the file. */<a name="line.384"></a>
+<span class="sourceLineNo">385</span>  public long getModificationTime() throws IOException {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>    return getFileStatus().getModificationTime();<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  }<a name="line.387"></a>
+<span class="sourceLineNo">388</span><a name="line.388"></a>
+<span class="sourceLineNo">389</span>  @Override<a name="line.389"></a>
+<span class="sourceLineNo">390</span>  public String toString() {<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    return this.getPath() +<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      (isReference() ? "-" + getReferredToFile(this.getPath()) + "-" + reference : "");<a name="line.392"></a>
+<span class="sourceLineNo">393</span>  }<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>  /**<a name="line.395"></a>
+<span class="sourceLineNo">396</span>   * @param path Path to check.<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * @return True if the path has format of a HFile.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   */<a name="line.398"></a>
+<span class="sourceLineNo">399</span>  public static boolean isHFile(final Path path) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    return isHFile(path.getName());<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>  public static boolean isHFile(final String fileName) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>    Matcher m = HFILE_NAME_PATTERN.matcher(fileName);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    return m.matches() &amp;&amp; m.groupCount() &gt; 0;<a name="line.405"></a>
+<span class="sourceLineNo">406</span>  }<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span>  /**<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   * @param path Path to check.<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   * @return True if the path has format of a del file.<a name="line.410"></a>
+<span class="sourceLineNo">411</span>   */<a name="line.411"></a>
+<span class="sourceLineNo">412</span>  public static boolean isDelFile(final Path path) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    return isDelFile(path.getName());<a name="line.413"></a>
+<span class="sourceLineNo">414</span>  }<a name="line.414"></a>
+<span class="sourceLineNo">415</span><a name="line.415"></a>
+<span class="sourceLineNo">416</span>  /**<a name="line.416"></a>
+<span class="sourceLineNo">417</span>   * @param fileName Sting version of path to validate.<a name="line.417"></a>
+<span class="sourceLineNo">418</span>   * @return True if the file name has format of a del file.<a name="line.418"></a>
+<span class="sourceLineNo">419</span>   */<a name="line.419"></a>
+<span class="sourceLineNo">420</span>  public static boolean isDelFile(final String fileName) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>    Matcher m = DELFILE_NAME_PATTERN.matcher(fileName);<a name="line.421"></a>
+<span class="sourceLineNo">422</span>    return m.matches() &amp;&amp; m.groupCount() &gt; 0;<a name="line.422"></a>
+<span class="sourceLineNo">423</span>  }<a name="line.423"></a>
+<span class="sourceLineNo">424</span><a name="line.424"></a>
+<span class="sourceLineNo">425</span>  /**<a name="line.425"></a>
+<span class="sourceLineNo">426</span>   * @param path Path to check.<a name="line.426"></a>
+<span class="sourceLineNo">427</span>   * @return True if the path has format of a HStoreFile reference.<a name="line.427"></a>
+<span class="sourceLineNo">428</span>   */<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  public static boolean isReference(final Path path) {<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    return isReference(path.getName());<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   * @param name file name to check.<a name="line.434"></a>
+<span class="sourceLineNo">435</span>   * @return True if the path has format of a HStoreFile reference.<a name="line.435"></a>
+<span class="sourceLineNo">436</span>   */<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  public static boolean isReference(final String name) {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    Matcher m = REF_NAME_PATTERN.matcher(name);<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    return m.matches() &amp;&amp; m.groupCount() &gt; 1;<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>  /**<a name="line.442"></a>
+<span class="sourceLineNo">443</span>   * @return timestamp when this file was created (as returned by filesystem)<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   */<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  public long getCreatedTimestamp() {<a name="line.445"></a>
+<span class="sourceLineNo">446</span>    return createdTimestamp;<a name="line.446"></a>
+<span class="sourceLineNo">447</span>  }<a name="line.447"></a>
 <span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span>    // Other region name is suffix on the passed Reference file name<a name="line.449"></a>
-<span class="sourceLineNo">450</span>    String otherRegion = m.group(2);<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    // Tabledir is up two directories from where Reference was written.<a name="line.451"></a>
-<span class="sourceLineNo">452</span>    Path tableDir = p.getParent().getParent().getParent();<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    String nameStrippedOfSuffix = m.group(1);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    if (LOG.isTraceEnabled()) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      LOG.trace("reference '" + p + "' to region=" + otherRegion<a name="line.455"></a>
-<span class="sourceLineNo">456</span>        + " hfile=" + nameStrippedOfSuffix);<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    }<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>    // Build up new path with the referenced region in place of our current<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    // region in the reference path.  Also strip regionname suffix from name.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    return new Path(new Path(new Path(tableDir, otherRegion),<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      p.getParent().getName()), nameStrippedOfSuffix);<a name="line.462"></a>
-<span class="sourceLineNo">463</span>  }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span>  /**<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   * Validate the store file name.<a name="line.466"></a>
-<span class="sourceLineNo">467</span>   * @param fileName name of the file to validate<a name="line.467"></a>
-<span class="sourceLineNo">468</span>   * @return &lt;tt&gt;true&lt;/tt&gt; if the file could be a valid store file, &lt;tt&gt;false&lt;/tt&gt; otherwise<a name="line.468"></a>
-<span class="sourceLineNo">469</span>   */<a name="line.469"></a>
-<span class="sourceLineNo">470</span>  public static boolean validateStoreFileName(final String fileName) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    if (HFileLink.isHFileLink(fileName) || isReference(fileName))<a name="line.471"></a>
-<span class="sourceLineNo">472</span>      return(true);<a name="line.472"></a>
-<span class="sourceLineNo">473</span>    return !fileName.contains("-");<a name="line.473"></a>
-<span class="sourceLineNo">474</span>  }<a name="line.474"></a>
-<span class="sourceLineNo">475</span><a name="line.475"></a>
-<span class="sourceLineNo">476</span>  /**<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * Return if the specified file is a valid store file or not.<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   * @param fileStatus The {@link FileStatus} of the file<a name="line.478"></a>
-<span class="sourceLineNo">479</span>   * @return &lt;tt&gt;true&lt;/tt&gt; if the file is valid<a name="line.479"></a>
-<span class="sourceLineNo">480</span>   */<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  public static boolean isValid(final FileStatus fileStatus)<a name="line.481"></a>
-<span class="sourceLineNo">482</span>      throws IOException {<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    final Path p = fileStatus.getPath();<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span>    if (fileStatus.isDirectory())<a name="line.485"></a>
-<span class="sourceLineNo">486</span>      return false;<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span>    // Check for empty hfile. Should never be the case but can happen<a name="line.488"></a>
-<span class="sourceLineNo">489</span>    // after data loss in hdfs for whatever reason (upgrade, etc.): HBASE-646<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    // NOTE: that the HFileLink is just a name, so it's an empty file.<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    if (!HFileLink.isHFileLink(p) &amp;&amp; fileStatus.getLen() &lt;= 0) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      LOG.warn("Skipping " + p + " because it is empty. HBASE-646 DATA LOSS?");<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      return false;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span>    return validateStoreFileName(p.getName());<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>  /**<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * helper function to compute HDFS blocks distribution of a given reference<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   * file.For reference file, we don't compute the exact value. We use some<a name="line.501"></a>
-<span class="sourceLineNo">502</span>   * estimate instead given it might be good enough. we assume bottom part<a name="line.502"></a>
-<span class="sourceLineNo">503</span>   * takes the first half of reference file, top part takes the second half<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   * of the reference file. This is just estimate, given<a name="line.504"></a>
-<span class="sourceLineNo">505</span>   * midkey ofregion != midkey of HFile, also the number and size of keys vary.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   * If this estimate isn't good enough, we can improve it later.<a name="line.506"></a>
-<span class="sourceLineNo">507</span>   * @param fs  The FileSystem<a name="line.507"></a>
-<span class="sourceLineNo">508</span>   * @param reference  The reference<a name="line.508"></a>
-<span class="sourceLineNo">509</span>   * @param status  The reference FileStatus<a name="line.509"></a>
-<span class="sourceLineNo">510</span>   * @return HDFS blocks distribution<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   */<a name="line.511"></a>
-<span class="sourceLineNo">512</span>  private static HDFSBlocksDistribution computeRefFileHDFSBlockDistribution(<a name="line.512"></a>
-<span class="sourceLineNo">513</span>      final FileSystem fs, final Reference reference, final FileStatus status)<a name="line.513"></a>
-<span class="sourceLineNo">514</span>      throws IOException {<a name="line.514"></a>
-<span class="sourceLineNo">515</span>    if (status == null) {<a name="line.515"></a>
-<span class="sourceLineNo">516</span>      return null;<a name="line.516"></a>
-<span class="sourceLineNo">517</span>    }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>    long start = 0;<a name="line.519"></a>
-<span class="sourceLineNo">520</span>    long length = 0;<a name="line.520"></a>
-<span class="sourceLineNo">521</span><a name="line.521"></a>
-<span class="sourceLineNo">522</span>    if (Reference.isTopFileRegion(reference.getFileRegion())) {<a name="line.522"></a>
-<span class="sourceLineNo">523</span>      start = status.getLen()/2;<a name="line.523"></a>
-<span class="sourceLineNo">524</span>      length = status.getLen() - status.getLen()/2;<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    } else {<a name="line.525"></a>
-<span class="sourceLineNo">526</span>      start = 0;<a name="line.526"></a>
-<span class="sourceLineNo">527</span>      length = status.getLen()/2;<a name="line.527"></a>
-<span class="sourceLineNo">528</span>    }<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    return FSUtils.computeHDFSBlocksDistribution(fs, status, start, length);<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  @Override<a name="line.532"></a>
-<span class="sourceLineNo">533</span>  public boolean equals(Object that) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    if (this == that) return true;<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    if (that == null) return false;<a name="line.535"></a>
+<span class="sourceLineNo">449</span>  /*<a name="line.449"></a>
+<span class="sourceLineNo">450</span>   * Return path to the file referred to by a Reference.  Presumes a directory<a name="line.450"></a>
+<span class="sourceLineNo">451</span>   * hierarchy of &lt;code&gt;${hbase.rootdir}/data/${namespace}/tablename/regionname/familyname&lt;/code&gt;.<a name="line.451"></a>
+<span class="sourceLineNo">452</span>   * @param p Path to a Reference file.<a name="line.452"></a>
+<span class="sourceLineNo">453</span>   * @return Calculated path to parent region file.<a name="line.453"></a>
+<span class="sourceLineNo">454</span>   * @throws IllegalArgumentException when path regex fails to match.<a name="line.454"></a>
+<span class="sourceLineNo">455</span>   */<a name="line.455"></a>
+<span class="sourceLineNo">456</span>  public static Path getReferredToFile(final Path p) {<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    Matcher m = REF_NAME_PATTERN.matcher(p.getName());<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    if (m == null || !m.matches()) {<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      LOG.warn("Failed match of store file name " + p.toString());<a name="line.459"></a>
+<span class="sourceLineNo">460</span>      throw new IllegalArgumentException("Failed match of store file name " +<a name="line.460"></a>
+<span class="sourceLineNo">461</span>          p.toString());<a name="line.461"></a>
+<span class="sourceLineNo">462</span>    }<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    // Other region name is suffix on the passed Reference file name<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    String otherRegion = m.group(2);<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    // Tabledir is up two directories from where Reference was written.<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    Path tableDir = p.getParent().getParent().getParent();<a name="line.467"></a>
+<span class="sourceLineNo">468</span>    String nameStrippedOfSuffix = m.group(1);<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    if (LOG.isTraceEnabled()) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      LOG.trace("reference '" + p + "' to region=" + otherRegion<a name="line.470"></a>
+<span class="sourceLineNo">471</span>        + " hfile=" + nameStrippedOfSuffix);<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>    // Build up new path with the referenced region in place of our current<a name="line.474"></a>
+<span class="sourceLineNo">475</span>    // region in the reference path.  Also strip regionname suffix from name.<a name="line.475"></a>
+<span class="sourceLineNo">476</span>    return new Path(new Path(new Path(tableDir, otherRegion),<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      p.getParent().getName()), nameStrippedOfSuffix);<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>  /**<a name="line.480"></a>
+<span class="sourceLineNo">481</span>   * Validate the store file name.<a name="line.481"></a>
+<span class="sourceLineNo">482</span>   * @param fileName name of the file to validate<a name="line.482"></a>
+<span class="sourceLineNo">483</span>   * @return &lt;tt&gt;true&lt;/tt&gt; if the file could be a valid store file, &lt;tt&gt;false&lt;/tt&gt; otherwise<a name="line.483"></a>
+<span class="sourceLineNo">484</span>   */<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  public static boolean validateStoreFileName(final String fileName) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    if (HFileLink.isHFileLink(fileName) || isReference(fileName))<a name="line.486"></a>
+<span class="sourceLineNo">487</span>      return(true);<a name="line.487"></a>
+<span class="sourceLineNo">488</span>    return !fileName.contains("-");<a name="line.488"></a>
+<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
+<span class="sourceLineNo">490</span><a name="line.490"></a>
+<span class="sourceLineNo">491</span>  /**<a name="line.491"></a>
+<span class="sourceLineNo">492</span>   * Return if the specified file is a valid store file or not.<a name="line.492"></a>
+<span class="sourceLineNo">493</span>   * @param fileStatus The {@link FileStatus} of the file<a name="line.493"></a>
+<span class="sourceLineNo">494</span>   * @return &lt;tt&gt;true&lt;/tt&gt; if the file is valid<a name="line.494"></a>
+<span class="sourceLineNo">495</span>   */<a name="line.495"></a>
+<span class="sourceLineNo">496</span>  public static boolean isValid(final FileStatus fileStatus)<a name="line.496"></a>
+<span class="sourceLineNo">497</span>      throws IOException {<a name="line.497"></a>
+<span class="sourceLineNo">498</span>    final Path p = fileStatus.getPath();<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>    if (fileStatus.isDirectory())<a name="line.500"></a>
+<span class="sourceLineNo">501</span>      return false;<a name="line.501"></a>
+<span class="sourceLineNo">502</span><a name="line.502"></a>
+<span class="sourceLineNo">503</span>    // Check for empty hfile. Should never be the case but can happen<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    // after data loss in hdfs for whatever reason (upgrade, etc.): HBASE-646<a name="line.504"></a>
+<span class="sourceLineNo">505</span>    // NOTE: that the HFileLink is just a name, so it's an empty file.<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    if (!HFileLink.isHFileLink(p) &amp;&amp; fileStatus.getLen() &lt;= 0) {<a name="line.506"></a>
+<span class="sourceLineNo">507</span>      LOG.warn("Skipping " + p + " because it is empty. HBASE-646 DATA LOSS?");<a name="line.507"></a>
+<span class="sourceLineNo">508</span>      return false;<a name="line.508"></a>
+<span class="sourceLineNo">509</span>    }<a name="line.509"></a>
+<span class="sourceLineNo">510</span><a name="line.510"></a>
+<span class="sourceLineNo">511</span>    return validateStoreFileName(p.getName());<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>  /**<a name="line.514"></a>
+<span class="sourceLineNo">515</span>   * helper function to compute HDFS blocks distribution of a given reference<a name="line.515"></a>
+<span class="sourceLineNo">516</span>   * file.For reference file, we don't compute the exact value. We use some<a name="line.516"></a>
+<span class="sourceLineNo">517</span>   * estimate instead given it might be good enough. we assume bottom part<a name="line.517"></a>
+<span class="sourceLineNo">518</span>   * takes the first half of reference file, top part takes the second half<a name="line.518"></a>
+<span class="sourceLineNo">519</span>   * of the reference file. This is just estimate, given<a name="line.519"></a>
+<span class="sourceLineNo">520</span>   * midkey ofregion != midkey of HFile, also the number and size of keys vary.<a name="line.520"></a>
+<span class="sourceLineNo">521</span>   * If this estimate isn't good enough, we can improve it later.<a name="line.521"></a>
+<span class="sourceLineNo">522</span>   * @param fs  The FileSystem<a name="line.522"></a>
+<span class="sourceLineNo">523</span>   * @param reference  The reference<a name="line.523"></a>
+<span class="sourceLineNo">524</span>   * @param status  The reference FileStatus<a name="line.524"></a>
+<span class="sourceLineNo">525</span>   * @return HDFS blocks distribution<a name="line.525"></a>
+<span class="sourceLineNo">526</span>   */<a name="line.526"></a>
+<span class="sourceLineNo">527</span>  private static HDFSBlocksDistribution computeRefFileHDFSBlockDistribution(<a name="line.527"></a>
+<span class="sourceLineNo">528</span>      final FileSystem fs, final Reference reference, final FileStatus status)<a name="line.528"></a>
+<span class="sourceLineNo">529</span>      throws IOException {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    if (status == null) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      return null;<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
+<span class="sourceLineNo">533</span><a name="line.533"></a>
+<span class="sourceLineNo">534</span>    long start = 0;<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    long length = 0;<a name="line.535"></a>
 <span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span>    if (!(that instanceof StoreFileInfo)) return false;<a name="line.537"></a>
-<span class="sourceLineNo">538</span><a name="line.538"></a>
-<span class="sourceLineNo">539</span>    StoreFileInfo o = (StoreFileInfo)that;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    if (initialPath != null &amp;&amp; o.initialPath == null) return false;<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    if (initialPath == null &amp;&amp; o.initialPath != null) return false;<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    if (initialPath != o.initialPath &amp;&amp; initialPath != null<a name="line.542"></a>
-<span class="sourceLineNo">543</span>            &amp;&amp; !initialPath.equals(o.initialPath)) return false;<a name="line.543"></a>
-<span class="sourceLineNo">544</span><a name="line.544"></a>
-<span class="sourceLineNo">545</span>    if (reference != null &amp;&amp; o.reference == null) return false;<a name="line.545"></a>
-<span class="sourceLineNo">546</span>    if (reference == null &amp;&amp; o.reference != null) return false;<a name="line.546"></a>
-<span class="sourceLineNo">547</span>    if (reference != o.reference &amp;&amp; reference != null<a name="line.547"></a>
-<span class="sourceLineNo">548</span>            &amp;&amp; !reference.equals(o.reference)) return false;<a name="line.548"></a>
-<span class="sourceLineNo">549</span><a name="line.549"></a>
-<span class="sourceLineNo">550</span>    if (link != null &amp;&amp; o.link == null) return false;<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    if (link == null &amp;&amp; o.link != null) return false;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>    if (link != o.link &amp;&amp; link != null &amp;&amp; !link.equals(o.link)) return false;<a name="line.552"></a>
+<span class="sourceLineNo">537</span>    if (Reference.isTopFileRegion(reference.getFileRegion())) {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>      start = status.getLen()/2;<a name="line.538"></a>
+<span class="sourceLineNo">539</span>      length = status.getLen() - status.getLen()/2;<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    } else {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      start = 0;<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      length = status.getLen()/2;<a name="line.542"></a>
+<span class="sourceLineNo">543</span>    }<a name="line.543"></a>
+<span class="sourceLineNo">544</span>    return FSUtils.computeHDFSBlocksDistribution(fs, status, start, length);<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>  @Override<a name="line.547"></a>
+<span class="sourceLineNo">548</span>  public boolean equals(Object that) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    if (this == that) return true;<a name="line.549"></a>
+<span class="sourceLineNo">550</span>    if (that == null) return false;<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span>    if (!(that instanceof StoreFileInfo)) return false;<a name="line.552"></a>
 <span class="sourceLineNo">553</span><a name="line.553"></a>
-<span class="sourceLineNo">554</span>    return true;<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>  @Override<a name="line.557"></a>
-<span class="sourceLineNo">558</span>  public int hashCode() {<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    int hash = 17;<a name="line.559"></a>
-<span class="sourceLineNo">560</span>    hash = hash * 31 + ((reference == null) ? 0 : reference.hashCode());<a name="line.560"></a>
-<span class="sourceLineNo">561</span>    hash = hash * 31 + ((initialPath ==  null) ? 0 : initialPath.hashCode());<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    hash = hash * 31 + ((link == null) ? 0 : link.hashCode());<a name="line.562"></a>
-<span class="sourceLineNo">563</span>    return  hash;<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>  /**<a name="line.566"></a>
-<span class="sourceLineNo">567</span>   * Return the active file name that contains the real data.<a name="line.567"></a>
-<span class="sourceLineNo">568</span>   * &lt;p&gt;<a name="line.568"></a>
-<span class="sourceLineNo">569</span>   * For referenced hfile, we will return the name of the reference file as it will be used to<a name="line.569"></a>
-<span class="sourceLineNo">570</span>   * construct the StoreFileReader. And for linked hfile, we will return the name of the file being<a name="line.570"></a>
-<span class="sourceLineNo">571</span>   * linked.<a name="line.571"></a>
-<span class="sourceLineNo">572</span>   */<a name="line.572"></a>
-<span class="sourceLineNo">573</span>  public String getActiveFileName() {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    if (reference != null || link == null) {<a name="line.574"></a>
-<span class="sourceLineNo">575</span>      return initialPath.getName();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    } else {<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      return HFileLink.getReferencedHFileName(initialPath.getName());<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    }<a name="line.578"></a>
+<span class="sourceLineNo">554</span>    StoreFileInfo o = (StoreFileInfo)that;<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    if (initialPath != null &amp;&amp; o.initialPath == null) return false;<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    if (initialPath == null &amp;&amp; o.initialPath != null) return false;<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    if (initialPath != o.initialPath &amp;&amp; initialPath != null<a name="line.557"></a>
+<span class="sourceLineNo">558</span>            &amp;&amp; !initialPath.equals(o.initialPath)) return false;<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span>    if (reference != null &amp;&amp; o.reference == null) return false;<a name="line.560"></a>
+<span class="sourceLineNo">561</span>    if (reference == null &amp;&amp; o.reference != null) return false;<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    if (reference != o.reference &amp;&amp; reference != null<a name="line.562"></a>
+<span class="sourceLineNo">563</span>            &amp;&amp; !reference.equals(o.reference)) return false;<a name="line.563"></a>
+<span class="sourceLineNo">564</span><a name="line.564"></a>
+<span class="sourceLineNo">565</span>    if (link != null &amp;&amp; o.link == null) return false;<a name="line.565"></a>
+<span class="sourceLineNo">566</span>    if (link == null &amp;&amp; o.link != null) return false;<a name="line.566"></a>
+<span class="sourceLineNo">567</span>    if (link != o.link &amp;&amp; link != null &amp;&amp; !link.equals(o.link)) return false;<a name="line.567"></a>
+<span class="sourceLineNo">568</span><a name="line.568"></a>
+<span class="sourceLineNo">569</span>    return true;<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>  @Override<a name="line.572"></a>
+<span class="sourceLineNo">573</span>  public int hashCode() {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    int hash = 17;<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    hash = hash * 31 + ((reference == null) ? 0 : reference.hashCode());<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    hash = hash * 31 + ((initialPath ==  null) ? 0 : initialPath.hashCode());<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    hash = hash * 31 + ((link == null) ? 0 : link.hashCode());<a name="line.577"></a>
+<span class="sourceLineNo">578</span>    return  hash;<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">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>  /**<a name="line.581"></a>
+<span class="sourceLineNo">582</span>   * Return the active file name that contains the real data.<a name="line.582"></a>
+<span class="sourceLineNo">583</span>   * &lt;p&gt;<a name="line.583"></a>
+<span class="sourceLineNo">584</span>   * For referenced hfile, we will return the name of the reference file as it will be used to<a name="line.584"></a>
+<span class="sourceLineNo">585</span>   * construct the StoreFileReader. And for linked hfile, we will return the name of the file being<a name="line.585"></a>
+<span class="sourceLineNo">586</span>   * linked.<a name="line.586"></a>
+<span class="sourceLineNo">587</span>   */<a name="line.587"></a>
+<span class="sourceLineNo">588</span>  public String getActiveFileName() {<a name="line.588"></a>
+<span class="sourceLineNo">589</span>    if (reference != null || link == null) {<a name="line.589"></a>
+<span class="sourceLineNo">590</span>      return initialPath.getName();<a name="line.590"></a>
+<span class="sourceLineNo">591</span>    } else {<a name="line.591"></a>
+<span class="sourceLineNo">592</span>      return HFileLink.getReferencedHFileName(initialPath.getName());<a name="line.592"></a>
+<span class="sourceLineNo">593</span>    }<a name="line.593"></a>
+<span class="sourceLineNo">594</span>  }<a name="line.594"></a>
+<span class="sourceLineNo">595</span>}<a name="line.595"></a>
 
 
 


[12/22] hbase-site git commit: Published site at 46cb5dfa226892fd2580f26ce9ce77225bd7e67c.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.FifoCallRunner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.FifoCallRunner.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.FifoCallRunner.html
index 9014fce..231ba93 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.FifoCallRunner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.FifoCallRunner.html
@@ -142,78 +142,92 @@
 <span class="sourceLineNo">134</span>  }<a name="line.134"></a>
 <span class="sourceLineNo">135</span><a name="line.135"></a>
 <span class="sourceLineNo">136</span>  @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  public long getNumGeneralCallsDropped() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    return 0;<a name="line.138"></a>
+<span class="sourceLineNo">137</span>  public int getActiveGeneralRpcHandlerCount() {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    return getActiveRpcHandlerCount();<a name="line.138"></a>
 <span class="sourceLineNo">139</span>  }<a name="line.139"></a>
 <span class="sourceLineNo">140</span><a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  public long getNumLifoModeSwitches() {<a name="line.142"></a>
+<span class="sourceLineNo">142</span>  public int getActivePriorityRpcHandlerCount() {<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    return 0;<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>  @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  public int getWriteQueueLength() {<a name="line.147"></a>
+<span class="sourceLineNo">147</span>  public int getActiveReplicationRpcHandlerCount() {<a name="line.147"></a>
 <span class="sourceLineNo">148</span>    return 0;<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>  @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public int getReadQueueLength() {<a name="line.152"></a>
+<span class="sourceLineNo">152</span>  public long getNumGeneralCallsDropped() {<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    return 0;<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<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  public int getScanQueueLength() {<a name="line.157"></a>
+<span class="sourceLineNo">157</span>  public long getNumLifoModeSwitches() {<a name="line.157"></a>
 <span class="sourceLineNo">158</span>    return 0;<a name="line.158"></a>
 <span class="sourceLineNo">159</span>  }<a name="line.159"></a>
 <span class="sourceLineNo">160</span><a name="line.160"></a>
 <span class="sourceLineNo">161</span>  @Override<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.162"></a>
+<span class="sourceLineNo">162</span>  public int getWriteQueueLength() {<a name="line.162"></a>
 <span class="sourceLineNo">163</span>    return 0;<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  }<a name="line.164"></a>
 <span class="sourceLineNo">165</span><a name="line.165"></a>
 <span class="sourceLineNo">166</span>  @Override<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  public int getActiveReadRpcHandlerCount() {<a name="line.167"></a>
+<span class="sourceLineNo">167</span>  public int getReadQueueLength() {<a name="line.167"></a>
 <span class="sourceLineNo">168</span>    return 0;<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>  @Override<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public int getActiveScanRpcHandlerCount() {<a name="line.172"></a>
+<span class="sourceLineNo">172</span>  public int getScanQueueLength() {<a name="line.172"></a>
 <span class="sourceLineNo">173</span>    return 0;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  }<a name="line.174"></a>
 <span class="sourceLineNo">175</span><a name="line.175"></a>
 <span class="sourceLineNo">176</span>  @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  public CallQueueInfo getCallQueueInfo() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    String queueName = "Fifo Queue";<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    HashMap&lt;String, Long&gt; methodCount = new HashMap&lt;&gt;();<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    HashMap&lt;String, Long&gt; methodSize = new HashMap&lt;&gt;();<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    CallQueueInfo callQueueInfo = new CallQueueInfo();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    callQueueInfo.setCallMethodCount(queueName, methodCount);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    callQueueInfo.setCallMethodSize(queueName, methodSize);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>    for (Runnable r:executor.getQueue()) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      FifoCallRunner mcr = (FifoCallRunner) r;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      RpcCall rpcCall = mcr.getCallRunner().getRpcCall();<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>      String method;<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>      if (null==rpcCall.getMethod() ||<a name="line.194"></a>
-<span class="sourceLineNo">195</span>            StringUtil.isNullOrEmpty(method = rpcCall.getMethod().getName())) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        method = "Unknown";<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>      long size = rpcCall.getSize();<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>      methodCount.put(method, 1 + methodCount.getOrDefault(method, 0L));<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      methodSize.put(method, size + methodSize.getOrDefault(method, 0L));<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    return callQueueInfo;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>}<a name="line.208"></a>
+<span class="sourceLineNo">177</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    return 0;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  @Override<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public int getActiveReadRpcHandlerCount() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    return 0;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public int getActiveScanRpcHandlerCount() {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    return 0;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  public CallQueueInfo getCallQueueInfo() {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    String queueName = "Fifo Queue";<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>    HashMap&lt;String, Long&gt; methodCount = new HashMap&lt;&gt;();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    HashMap&lt;String, Long&gt; methodSize = new HashMap&lt;&gt;();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>    CallQueueInfo callQueueInfo = new CallQueueInfo();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    callQueueInfo.setCallMethodCount(queueName, methodCount);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    callQueueInfo.setCallMethodSize(queueName, methodSize);<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>    for (Runnable r:executor.getQueue()) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      FifoCallRunner mcr = (FifoCallRunner) r;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      RpcCall rpcCall = mcr.getCallRunner().getRpcCall();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>      String method;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>      if (null==rpcCall.getMethod() ||<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            StringUtil.isNullOrEmpty(method = rpcCall.getMethod().getName())) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        method = "Unknown";<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>      long size = rpcCall.getSize();<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>      methodCount.put(method, 1 + methodCount.getOrDefault(method, 0L));<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      methodSize.put(method, size + methodSize.getOrDefault(method, 0L));<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>    return callQueueInfo;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>  }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>}<a name="line.222"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
index 9014fce..231ba93 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/FifoRpcScheduler.html
@@ -142,78 +142,92 @@
 <span class="sourceLineNo">134</span>  }<a name="line.134"></a>
 <span class="sourceLineNo">135</span><a name="line.135"></a>
 <span class="sourceLineNo">136</span>  @Override<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  public long getNumGeneralCallsDropped() {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    return 0;<a name="line.138"></a>
+<span class="sourceLineNo">137</span>  public int getActiveGeneralRpcHandlerCount() {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    return getActiveRpcHandlerCount();<a name="line.138"></a>
 <span class="sourceLineNo">139</span>  }<a name="line.139"></a>
 <span class="sourceLineNo">140</span><a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  public long getNumLifoModeSwitches() {<a name="line.142"></a>
+<span class="sourceLineNo">142</span>  public int getActivePriorityRpcHandlerCount() {<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    return 0;<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>  @Override<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  public int getWriteQueueLength() {<a name="line.147"></a>
+<span class="sourceLineNo">147</span>  public int getActiveReplicationRpcHandlerCount() {<a name="line.147"></a>
 <span class="sourceLineNo">148</span>    return 0;<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>  @Override<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public int getReadQueueLength() {<a name="line.152"></a>
+<span class="sourceLineNo">152</span>  public long getNumGeneralCallsDropped() {<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    return 0;<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<a name="line.156"></a>
-<span class="sourceLineNo">157</span>  public int getScanQueueLength() {<a name="line.157"></a>
+<span class="sourceLineNo">157</span>  public long getNumLifoModeSwitches() {<a name="line.157"></a>
 <span class="sourceLineNo">158</span>    return 0;<a name="line.158"></a>
 <span class="sourceLineNo">159</span>  }<a name="line.159"></a>
 <span class="sourceLineNo">160</span><a name="line.160"></a>
 <span class="sourceLineNo">161</span>  @Override<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.162"></a>
+<span class="sourceLineNo">162</span>  public int getWriteQueueLength() {<a name="line.162"></a>
 <span class="sourceLineNo">163</span>    return 0;<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  }<a name="line.164"></a>
 <span class="sourceLineNo">165</span><a name="line.165"></a>
 <span class="sourceLineNo">166</span>  @Override<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  public int getActiveReadRpcHandlerCount() {<a name="line.167"></a>
+<span class="sourceLineNo">167</span>  public int getReadQueueLength() {<a name="line.167"></a>
 <span class="sourceLineNo">168</span>    return 0;<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>  @Override<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public int getActiveScanRpcHandlerCount() {<a name="line.172"></a>
+<span class="sourceLineNo">172</span>  public int getScanQueueLength() {<a name="line.172"></a>
 <span class="sourceLineNo">173</span>    return 0;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  }<a name="line.174"></a>
 <span class="sourceLineNo">175</span><a name="line.175"></a>
 <span class="sourceLineNo">176</span>  @Override<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  public CallQueueInfo getCallQueueInfo() {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    String queueName = "Fifo Queue";<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>    HashMap&lt;String, Long&gt; methodCount = new HashMap&lt;&gt;();<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    HashMap&lt;String, Long&gt; methodSize = new HashMap&lt;&gt;();<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>    CallQueueInfo callQueueInfo = new CallQueueInfo();<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    callQueueInfo.setCallMethodCount(queueName, methodCount);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    callQueueInfo.setCallMethodSize(queueName, methodSize);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>    for (Runnable r:executor.getQueue()) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      FifoCallRunner mcr = (FifoCallRunner) r;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      RpcCall rpcCall = mcr.getCallRunner().getRpcCall();<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span>      String method;<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span>      if (null==rpcCall.getMethod() ||<a name="line.194"></a>
-<span class="sourceLineNo">195</span>            StringUtil.isNullOrEmpty(method = rpcCall.getMethod().getName())) {<a name="line.195"></a>
-<span class="sourceLineNo">196</span>        method = "Unknown";<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>      long size = rpcCall.getSize();<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>      methodCount.put(method, 1 + methodCount.getOrDefault(method, 0L));<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      methodSize.put(method, size + methodSize.getOrDefault(method, 0L));<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>    return callQueueInfo;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>}<a name="line.208"></a>
+<span class="sourceLineNo">177</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    return 0;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>  }<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  @Override<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  public int getActiveReadRpcHandlerCount() {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    return 0;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  @Override<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  public int getActiveScanRpcHandlerCount() {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    return 0;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  public CallQueueInfo getCallQueueInfo() {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    String queueName = "Fifo Queue";<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>    HashMap&lt;String, Long&gt; methodCount = new HashMap&lt;&gt;();<a name="line.195"></a>
+<span class="sourceLineNo">196</span>    HashMap&lt;String, Long&gt; methodSize = new HashMap&lt;&gt;();<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>    CallQueueInfo callQueueInfo = new CallQueueInfo();<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    callQueueInfo.setCallMethodCount(queueName, methodCount);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    callQueueInfo.setCallMethodSize(queueName, methodSize);<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>    for (Runnable r:executor.getQueue()) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      FifoCallRunner mcr = (FifoCallRunner) r;<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      RpcCall rpcCall = mcr.getCallRunner().getRpcCall();<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>      String method;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>      if (null==rpcCall.getMethod() ||<a name="line.209"></a>
+<span class="sourceLineNo">210</span>            StringUtil.isNullOrEmpty(method = rpcCall.getMethod().getName())) {<a name="line.210"></a>
+<span class="sourceLineNo">211</span>        method = "Unknown";<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>      long size = rpcCall.getSize();<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>      methodCount.put(method, 1 + methodCount.getOrDefault(method, 0L));<a name="line.216"></a>
+<span class="sourceLineNo">217</span>      methodSize.put(method, size + methodSize.getOrDefault(method, 0L));<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>    return callQueueInfo;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>  }<a name="line.221"></a>
+<span class="sourceLineNo">222</span>}<a name="line.222"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html
index 748366a..7fdfc9d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSource.html
@@ -84,44 +84,50 @@
 <span class="sourceLineNo">076</span>  String NUM_OPEN_CONNECTIONS_NAME = "numOpenConnections";<a name="line.76"></a>
 <span class="sourceLineNo">077</span>  String NUM_OPEN_CONNECTIONS_DESC = "Number of open connections.";<a name="line.77"></a>
 <span class="sourceLineNo">078</span>  String NUM_ACTIVE_HANDLER_NAME = "numActiveHandler";<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  String NUM_ACTIVE_HANDLER_DESC = "Number of active rpc handlers.";<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  String NUM_ACTIVE_WRITE_HANDLER_NAME = "numActiveWriteHandler";<a name="line.80"></a>
-<span class="sourceLineNo">081</span>  String NUM_ACTIVE_WRITE_HANDLER_DESC = "Number of active write rpc handlers.";<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  String NUM_ACTIVE_READ_HANDLER_NAME = "numActiveReadHandler";<a name="line.82"></a>
-<span class="sourceLineNo">083</span>  String NUM_ACTIVE_READ_HANDLER_DESC = "Number of active read rpc handlers.";<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  String NUM_ACTIVE_SCAN_HANDLER_NAME = "numActiveScanHandler";<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  String NUM_ACTIVE_SCAN_HANDLER_DESC = "Number of active scan rpc handlers.";<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  String NUM_GENERAL_CALLS_DROPPED_NAME = "numGeneralCallsDropped";<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  String NUM_GENERAL_CALLS_DROPPED_DESC = "Total number of calls in general queue which " +<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    "were dropped by CoDel RPC executor";<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  String NUM_LIFO_MODE_SWITCHES_NAME = "numLifoModeSwitches";<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  String NUM_LIFO_MODE_SWITCHES_DESC = "Total number of calls in general queue which " +<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    "were served from the tail of the queue";<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span>  void authorizationSuccess();<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  void authorizationFailure();<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  void authenticationSuccess();<a name="line.97"></a>
+<span class="sourceLineNo">079</span>  String NUM_ACTIVE_HANDLER_DESC = "Total number of active rpc handlers.";<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  String NUM_ACTIVE_GENERAL_HANDLER_NAME = "numActiveGeneralHandler";<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  String NUM_ACTIVE_GENERAL_HANDLER_DESC = "Number of active general rpc handlers.";<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  String NUM_ACTIVE_PRIORITY_HANDLER_NAME = "numActivePriorityHandler";<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  String NUM_ACTIVE_PRIORITY_HANDLER_DESC = "Number of active priority rpc handlers.";<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  String NUM_ACTIVE_REPLICATION_HANDLER_NAME = "numActiveReplicationHandler";<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  String NUM_ACTIVE_REPLICATION_HANDLER_DESC = "Number of active replication rpc handlers.";<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  String NUM_ACTIVE_WRITE_HANDLER_NAME = "numActiveWriteHandler";<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  String NUM_ACTIVE_WRITE_HANDLER_DESC = "Number of active write rpc handlers.";<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  String NUM_ACTIVE_READ_HANDLER_NAME = "numActiveReadHandler";<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  String NUM_ACTIVE_READ_HANDLER_DESC = "Number of active read rpc handlers.";<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  String NUM_ACTIVE_SCAN_HANDLER_NAME = "numActiveScanHandler";<a name="line.90"></a>
+<span class="sourceLineNo">091</span>  String NUM_ACTIVE_SCAN_HANDLER_DESC = "Number of active scan rpc handlers.";<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  String NUM_GENERAL_CALLS_DROPPED_NAME = "numGeneralCallsDropped";<a name="line.92"></a>
+<span class="sourceLineNo">093</span>  String NUM_GENERAL_CALLS_DROPPED_DESC = "Total number of calls in general queue which " +<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    "were dropped by CoDel RPC executor";<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  String NUM_LIFO_MODE_SWITCHES_NAME = "numLifoModeSwitches";<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  String NUM_LIFO_MODE_SWITCHES_DESC = "Total number of calls in general queue which " +<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    "were served from the tail of the queue";<a name="line.97"></a>
 <span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  void authenticationFailure();<a name="line.99"></a>
+<span class="sourceLineNo">099</span>  void authorizationSuccess();<a name="line.99"></a>
 <span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  void authenticationFallback();<a name="line.101"></a>
+<span class="sourceLineNo">101</span>  void authorizationFailure();<a name="line.101"></a>
 <span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  void sentBytes(long count);<a name="line.103"></a>
+<span class="sourceLineNo">103</span>  void authenticationSuccess();<a name="line.103"></a>
 <span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  void receivedBytes(int count);<a name="line.105"></a>
+<span class="sourceLineNo">105</span>  void authenticationFailure();<a name="line.105"></a>
 <span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  void sentResponse(long count);<a name="line.107"></a>
+<span class="sourceLineNo">107</span>  void authenticationFallback();<a name="line.107"></a>
 <span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>  void receivedRequest(long count);<a name="line.109"></a>
+<span class="sourceLineNo">109</span>  void sentBytes(long count);<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  void dequeuedCall(int qTime);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>  void receivedBytes(int count);<a name="line.111"></a>
 <span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  void processedCall(int processingTime);<a name="line.113"></a>
+<span class="sourceLineNo">113</span>  void sentResponse(long count);<a name="line.113"></a>
 <span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  void queuedAndProcessedCall(int totalTime);<a name="line.115"></a>
-<span class="sourceLineNo">116</span>}<a name="line.116"></a>
+<span class="sourceLineNo">115</span>  void receivedRequest(long count);<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  void dequeuedCall(int qTime);<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  void processedCall(int processingTime);<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  void queuedAndProcessedCall(int totalTime);<a name="line.121"></a>
+<span class="sourceLineNo">122</span>}<a name="line.122"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html
index e8e6b41..4ac9ade 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html
@@ -163,27 +163,35 @@
 <span class="sourceLineNo">155</span>              NUM_OPEN_CONNECTIONS_DESC), wrapper.getNumOpenConnections())<a name="line.155"></a>
 <span class="sourceLineNo">156</span>          .addGauge(Interns.info(NUM_ACTIVE_HANDLER_NAME,<a name="line.156"></a>
 <span class="sourceLineNo">157</span>              NUM_ACTIVE_HANDLER_DESC), wrapper.getActiveRpcHandlerCount())<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          .addCounter(Interns.info(NUM_GENERAL_CALLS_DROPPED_NAME,<a name="line.158"></a>
-<span class="sourceLineNo">159</span>              NUM_GENERAL_CALLS_DROPPED_DESC), wrapper.getNumGeneralCallsDropped())<a name="line.159"></a>
-<span class="sourceLineNo">160</span>          .addCounter(Interns.info(NUM_LIFO_MODE_SWITCHES_NAME,<a name="line.160"></a>
-<span class="sourceLineNo">161</span>              NUM_LIFO_MODE_SWITCHES_DESC), wrapper.getNumLifoModeSwitches())<a name="line.161"></a>
-<span class="sourceLineNo">162</span>          .addGauge(Interns.info(WRITE_QUEUE_NAME, WRITE_QUEUE_DESC),<a name="line.162"></a>
-<span class="sourceLineNo">163</span>              wrapper.getWriteQueueLength())<a name="line.163"></a>
-<span class="sourceLineNo">164</span>          .addGauge(Interns.info(READ_QUEUE_NAME, READ_QUEUE_DESC),<a name="line.164"></a>
-<span class="sourceLineNo">165</span>              wrapper.getReadQueueLength())<a name="line.165"></a>
-<span class="sourceLineNo">166</span>          .addGauge(Interns.info(SCAN_QUEUE_NAME, SCAN_QUEUE_DESC),<a name="line.166"></a>
-<span class="sourceLineNo">167</span>              wrapper.getScanQueueLength())<a name="line.167"></a>
-<span class="sourceLineNo">168</span>          .addGauge(Interns.info(NUM_ACTIVE_WRITE_HANDLER_NAME, NUM_ACTIVE_WRITE_HANDLER_DESC),<a name="line.168"></a>
-<span class="sourceLineNo">169</span>            wrapper.getActiveWriteRpcHandlerCount())<a name="line.169"></a>
-<span class="sourceLineNo">170</span>          .addGauge(Interns.info(NUM_ACTIVE_READ_HANDLER_NAME, NUM_ACTIVE_READ_HANDLER_DESC),<a name="line.170"></a>
-<span class="sourceLineNo">171</span>            wrapper.getActiveReadRpcHandlerCount())<a name="line.171"></a>
-<span class="sourceLineNo">172</span>          .addGauge(Interns.info(NUM_ACTIVE_SCAN_HANDLER_NAME, NUM_ACTIVE_SCAN_HANDLER_DESC),<a name="line.172"></a>
-<span class="sourceLineNo">173</span>            wrapper.getActiveScanRpcHandlerCount());<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>    metricsRegistry.snapshot(mrb, all);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span>}<a name="line.178"></a>
+<span class="sourceLineNo">158</span>          .addGauge(Interns.info(NUM_ACTIVE_GENERAL_HANDLER_NAME, NUM_ACTIVE_GENERAL_HANDLER_DESC),<a name="line.158"></a>
+<span class="sourceLineNo">159</span>            wrapper.getActiveGeneralRpcHandlerCount())<a name="line.159"></a>
+<span class="sourceLineNo">160</span>          .addGauge(<a name="line.160"></a>
+<span class="sourceLineNo">161</span>            Interns.info(NUM_ACTIVE_PRIORITY_HANDLER_NAME, NUM_ACTIVE_PRIORITY_HANDLER_DESC),<a name="line.161"></a>
+<span class="sourceLineNo">162</span>            wrapper.getActivePriorityRpcHandlerCount())<a name="line.162"></a>
+<span class="sourceLineNo">163</span>          .addGauge(<a name="line.163"></a>
+<span class="sourceLineNo">164</span>            Interns.info(NUM_ACTIVE_REPLICATION_HANDLER_NAME, NUM_ACTIVE_REPLICATION_HANDLER_DESC),<a name="line.164"></a>
+<span class="sourceLineNo">165</span>            wrapper.getActiveReplicationRpcHandlerCount())<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          .addCounter(Interns.info(NUM_GENERAL_CALLS_DROPPED_NAME,<a name="line.166"></a>
+<span class="sourceLineNo">167</span>              NUM_GENERAL_CALLS_DROPPED_DESC), wrapper.getNumGeneralCallsDropped())<a name="line.167"></a>
+<span class="sourceLineNo">168</span>          .addCounter(Interns.info(NUM_LIFO_MODE_SWITCHES_NAME,<a name="line.168"></a>
+<span class="sourceLineNo">169</span>              NUM_LIFO_MODE_SWITCHES_DESC), wrapper.getNumLifoModeSwitches())<a name="line.169"></a>
+<span class="sourceLineNo">170</span>          .addGauge(Interns.info(WRITE_QUEUE_NAME, WRITE_QUEUE_DESC),<a name="line.170"></a>
+<span class="sourceLineNo">171</span>              wrapper.getWriteQueueLength())<a name="line.171"></a>
+<span class="sourceLineNo">172</span>          .addGauge(Interns.info(READ_QUEUE_NAME, READ_QUEUE_DESC),<a name="line.172"></a>
+<span class="sourceLineNo">173</span>              wrapper.getReadQueueLength())<a name="line.173"></a>
+<span class="sourceLineNo">174</span>          .addGauge(Interns.info(SCAN_QUEUE_NAME, SCAN_QUEUE_DESC),<a name="line.174"></a>
+<span class="sourceLineNo">175</span>              wrapper.getScanQueueLength())<a name="line.175"></a>
+<span class="sourceLineNo">176</span>          .addGauge(Interns.info(NUM_ACTIVE_WRITE_HANDLER_NAME, NUM_ACTIVE_WRITE_HANDLER_DESC),<a name="line.176"></a>
+<span class="sourceLineNo">177</span>            wrapper.getActiveWriteRpcHandlerCount())<a name="line.177"></a>
+<span class="sourceLineNo">178</span>          .addGauge(Interns.info(NUM_ACTIVE_READ_HANDLER_NAME, NUM_ACTIVE_READ_HANDLER_DESC),<a name="line.178"></a>
+<span class="sourceLineNo">179</span>            wrapper.getActiveReadRpcHandlerCount())<a name="line.179"></a>
+<span class="sourceLineNo">180</span>          .addGauge(Interns.info(NUM_ACTIVE_SCAN_HANDLER_NAME, NUM_ACTIVE_SCAN_HANDLER_DESC),<a name="line.180"></a>
+<span class="sourceLineNo">181</span>            wrapper.getActiveScanRpcHandlerCount());<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>    metricsRegistry.snapshot(mrb, all);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>  }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>}<a name="line.186"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html
index ecac361..2613786 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapper.html
@@ -43,22 +43,28 @@
 <span class="sourceLineNo">035</span><a name="line.35"></a>
 <span class="sourceLineNo">036</span>  int getActiveRpcHandlerCount();<a name="line.36"></a>
 <span class="sourceLineNo">037</span><a name="line.37"></a>
-<span class="sourceLineNo">038</span>  long getNumGeneralCallsDropped();<a name="line.38"></a>
+<span class="sourceLineNo">038</span>  int getActiveGeneralRpcHandlerCount();<a name="line.38"></a>
 <span class="sourceLineNo">039</span><a name="line.39"></a>
-<span class="sourceLineNo">040</span>  long getNumLifoModeSwitches();<a name="line.40"></a>
+<span class="sourceLineNo">040</span>  int getActivePriorityRpcHandlerCount();<a name="line.40"></a>
 <span class="sourceLineNo">041</span><a name="line.41"></a>
-<span class="sourceLineNo">042</span>  int getWriteQueueLength();<a name="line.42"></a>
+<span class="sourceLineNo">042</span>  int getActiveReplicationRpcHandlerCount();<a name="line.42"></a>
 <span class="sourceLineNo">043</span><a name="line.43"></a>
-<span class="sourceLineNo">044</span>  int getReadQueueLength();<a name="line.44"></a>
+<span class="sourceLineNo">044</span>  long getNumGeneralCallsDropped();<a name="line.44"></a>
 <span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span>  int getScanQueueLength();<a name="line.46"></a>
+<span class="sourceLineNo">046</span>  long getNumLifoModeSwitches();<a name="line.46"></a>
 <span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>  int getActiveWriteRpcHandlerCount();<a name="line.48"></a>
+<span class="sourceLineNo">048</span>  int getWriteQueueLength();<a name="line.48"></a>
 <span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  int getActiveReadRpcHandlerCount();<a name="line.50"></a>
+<span class="sourceLineNo">050</span>  int getReadQueueLength();<a name="line.50"></a>
 <span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  int getActiveScanRpcHandlerCount();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>}<a name="line.53"></a>
+<span class="sourceLineNo">052</span>  int getScanQueueLength();<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  int getActiveWriteRpcHandlerCount();<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  int getActiveReadRpcHandlerCount();<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  int getActiveScanRpcHandlerCount();<a name="line.58"></a>
+<span class="sourceLineNo">059</span>}<a name="line.59"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html
index 69f1f8d..55c0b93 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/MetricsHBaseServerWrapperImpl.html
@@ -91,69 +91,93 @@
 <span class="sourceLineNo">083</span>  }<a name="line.83"></a>
 <span class="sourceLineNo">084</span><a name="line.84"></a>
 <span class="sourceLineNo">085</span>  @Override<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  public long getNumGeneralCallsDropped() {<a name="line.86"></a>
+<span class="sourceLineNo">086</span>  public int getActiveGeneralRpcHandlerCount() {<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.87"></a>
 <span class="sourceLineNo">088</span>      return 0;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>    }<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    return server.getScheduler().getNumGeneralCallsDropped();<a name="line.90"></a>
+<span class="sourceLineNo">090</span>    return server.getScheduler().getActiveGeneralRpcHandlerCount();<a name="line.90"></a>
 <span class="sourceLineNo">091</span>  }<a name="line.91"></a>
 <span class="sourceLineNo">092</span><a name="line.92"></a>
 <span class="sourceLineNo">093</span>  @Override<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public long getNumLifoModeSwitches() {<a name="line.94"></a>
+<span class="sourceLineNo">094</span>  public int getActivePriorityRpcHandlerCount() {<a name="line.94"></a>
 <span class="sourceLineNo">095</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.95"></a>
 <span class="sourceLineNo">096</span>      return 0;<a name="line.96"></a>
 <span class="sourceLineNo">097</span>    }<a name="line.97"></a>
-<span class="sourceLineNo">098</span>    return server.getScheduler().getNumLifoModeSwitches();<a name="line.98"></a>
+<span class="sourceLineNo">098</span>    return server.getScheduler().getActivePriorityRpcHandlerCount();<a name="line.98"></a>
 <span class="sourceLineNo">099</span>  }<a name="line.99"></a>
 <span class="sourceLineNo">100</span><a name="line.100"></a>
 <span class="sourceLineNo">101</span>  @Override<a name="line.101"></a>
-<span class="sourceLineNo">102</span>  public int getWriteQueueLength() {<a name="line.102"></a>
+<span class="sourceLineNo">102</span>  public int getActiveReplicationRpcHandlerCount() {<a name="line.102"></a>
 <span class="sourceLineNo">103</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.103"></a>
 <span class="sourceLineNo">104</span>      return 0;<a name="line.104"></a>
 <span class="sourceLineNo">105</span>    }<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    return server.getScheduler().getWriteQueueLength();<a name="line.106"></a>
+<span class="sourceLineNo">106</span>    return server.getScheduler().getActiveReplicationRpcHandlerCount();<a name="line.106"></a>
 <span class="sourceLineNo">107</span>  }<a name="line.107"></a>
 <span class="sourceLineNo">108</span><a name="line.108"></a>
 <span class="sourceLineNo">109</span>  @Override<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  public int getReadQueueLength() {<a name="line.110"></a>
+<span class="sourceLineNo">110</span>  public long getNumGeneralCallsDropped() {<a name="line.110"></a>
 <span class="sourceLineNo">111</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.111"></a>
 <span class="sourceLineNo">112</span>      return 0;<a name="line.112"></a>
 <span class="sourceLineNo">113</span>    }<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    return server.getScheduler().getReadQueueLength();<a name="line.114"></a>
+<span class="sourceLineNo">114</span>    return server.getScheduler().getNumGeneralCallsDropped();<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>  @Override<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public int getScanQueueLength() {<a name="line.118"></a>
+<span class="sourceLineNo">118</span>  public long getNumLifoModeSwitches() {<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.119"></a>
 <span class="sourceLineNo">120</span>      return 0;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    return server.getScheduler().getScanQueueLength();<a name="line.122"></a>
+<span class="sourceLineNo">122</span>    return server.getScheduler().getNumLifoModeSwitches();<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>  @Override<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.126"></a>
+<span class="sourceLineNo">126</span>  public int getWriteQueueLength() {<a name="line.126"></a>
 <span class="sourceLineNo">127</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.127"></a>
 <span class="sourceLineNo">128</span>      return 0;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    return server.getScheduler().getActiveWriteRpcHandlerCount();<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    return server.getScheduler().getWriteQueueLength();<a name="line.130"></a>
 <span class="sourceLineNo">131</span>  }<a name="line.131"></a>
 <span class="sourceLineNo">132</span><a name="line.132"></a>
 <span class="sourceLineNo">133</span>  @Override<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public int getActiveReadRpcHandlerCount() {<a name="line.134"></a>
+<span class="sourceLineNo">134</span>  public int getReadQueueLength() {<a name="line.134"></a>
 <span class="sourceLineNo">135</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.135"></a>
 <span class="sourceLineNo">136</span>      return 0;<a name="line.136"></a>
 <span class="sourceLineNo">137</span>    }<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    return server.getScheduler().getActiveReadRpcHandlerCount();<a name="line.138"></a>
+<span class="sourceLineNo">138</span>    return server.getScheduler().getReadQueueLength();<a name="line.138"></a>
 <span class="sourceLineNo">139</span>  }<a name="line.139"></a>
 <span class="sourceLineNo">140</span><a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  public int getActiveScanRpcHandlerCount() {<a name="line.142"></a>
+<span class="sourceLineNo">142</span>  public int getScanQueueLength() {<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.143"></a>
 <span class="sourceLineNo">144</span>      return 0;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    return server.getScheduler().getActiveScanRpcHandlerCount();<a name="line.146"></a>
+<span class="sourceLineNo">146</span>    return server.getScheduler().getScanQueueLength();<a name="line.146"></a>
 <span class="sourceLineNo">147</span>  }<a name="line.147"></a>
-<span class="sourceLineNo">148</span>}<a name="line.148"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span>  @Override<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      return 0;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    return server.getScheduler().getActiveWriteRpcHandlerCount();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>  public int getActiveReadRpcHandlerCount() {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      return 0;<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    return server.getScheduler().getActiveReadRpcHandlerCount();<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>  @Override<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public int getActiveScanRpcHandlerCount() {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    if (!isServerStarted() || this.server.getScheduler() == null) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      return 0;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    return server.getScheduler().getActiveScanRpcHandlerCount();<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>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html
index 51f71c0..e3141b8 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.Context.html
@@ -85,40 +85,49 @@
 <span class="sourceLineNo">077</span>  /** Retrieves length of the replication queue for metrics. */<a name="line.77"></a>
 <span class="sourceLineNo">078</span>  public abstract int getReplicationQueueLength();<a name="line.78"></a>
 <span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  /** Retrieves the number of active handler. */<a name="line.80"></a>
+<span class="sourceLineNo">080</span>  /** Retrieves the total number of active handler. */<a name="line.80"></a>
 <span class="sourceLineNo">081</span>  public abstract int getActiveRpcHandlerCount();<a name="line.81"></a>
 <span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  /**<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   * If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * from general queue because RPC executor is under high load; returns 0 otherwise.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   */<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public abstract long getNumGeneralCallsDropped();<a name="line.87"></a>
+<span class="sourceLineNo">083</span>  /** Retrieves the number of active general handler. */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  public abstract int getActiveGeneralRpcHandlerCount();<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  /** Retrieves the number of active priority handler. */<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  public abstract int getActivePriorityRpcHandlerCount();<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>   * If CoDel-based RPC executors are used, retrieves the number of Calls that were<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * picked from the tail of the queue (indicating adaptive LIFO mode, when<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   * in the period of overloade we serve last requests first); returns 0 otherwise.<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   */<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public abstract long getNumLifoModeSwitches();<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  /** Retrieves length of the write queue for metrics when use RWQueueRpcExecutor. */<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public abstract int getWriteQueueLength();<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  /** Retrieves length of the read queue for metrics when use RWQueueRpcExecutor. */<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public abstract int getReadQueueLength();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  /** Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor. */<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public abstract int getScanQueueLength();<a name="line.103"></a>
+<span class="sourceLineNo">089</span>  /** Retrieves the number of active replication handler. */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public abstract int getActiveReplicationRpcHandlerCount();<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * from general queue because RPC executor is under high load; returns 0 otherwise.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public abstract long getNumGeneralCallsDropped();<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>  /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * If CoDel-based RPC executors are used, retrieves the number of Calls that were<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * picked from the tail of the queue (indicating adaptive LIFO mode, when<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * in the period of overloade we serve last requests first); returns 0 otherwise.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  public abstract long getNumLifoModeSwitches();<a name="line.103"></a>
 <span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public abstract int getActiveWriteRpcHandlerCount();<a name="line.106"></a>
+<span class="sourceLineNo">105</span>  /** Retrieves length of the write queue for metrics when use RWQueueRpcExecutor. */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  public abstract int getWriteQueueLength();<a name="line.106"></a>
 <span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  public abstract int getActiveReadRpcHandlerCount();<a name="line.109"></a>
+<span class="sourceLineNo">108</span>  /** Retrieves length of the read queue for metrics when use RWQueueRpcExecutor. */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public abstract int getReadQueueLength();<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public abstract int getActiveScanRpcHandlerCount();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>}<a name="line.113"></a>
+<span class="sourceLineNo">111</span>  /** Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor. */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public abstract int getScanQueueLength();<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public abstract int getActiveWriteRpcHandlerCount();<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  public abstract int getActiveReadRpcHandlerCount();<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  public abstract int getActiveScanRpcHandlerCount();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>}<a name="line.122"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html
index 51f71c0..e3141b8 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/RpcScheduler.html
@@ -85,40 +85,49 @@
 <span class="sourceLineNo">077</span>  /** Retrieves length of the replication queue for metrics. */<a name="line.77"></a>
 <span class="sourceLineNo">078</span>  public abstract int getReplicationQueueLength();<a name="line.78"></a>
 <span class="sourceLineNo">079</span><a name="line.79"></a>
-<span class="sourceLineNo">080</span>  /** Retrieves the number of active handler. */<a name="line.80"></a>
+<span class="sourceLineNo">080</span>  /** Retrieves the total number of active handler. */<a name="line.80"></a>
 <span class="sourceLineNo">081</span>  public abstract int getActiveRpcHandlerCount();<a name="line.81"></a>
 <span class="sourceLineNo">082</span><a name="line.82"></a>
-<span class="sourceLineNo">083</span>  /**<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   * If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * from general queue because RPC executor is under high load; returns 0 otherwise.<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   */<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  public abstract long getNumGeneralCallsDropped();<a name="line.87"></a>
+<span class="sourceLineNo">083</span>  /** Retrieves the number of active general handler. */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  public abstract int getActiveGeneralRpcHandlerCount();<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  /** Retrieves the number of active priority handler. */<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  public abstract int getActivePriorityRpcHandlerCount();<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>   * If CoDel-based RPC executors are used, retrieves the number of Calls that were<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * picked from the tail of the queue (indicating adaptive LIFO mode, when<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   * in the period of overloade we serve last requests first); returns 0 otherwise.<a name="line.92"></a>
-<span class="sourceLineNo">093</span>   */<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public abstract long getNumLifoModeSwitches();<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  /** Retrieves length of the write queue for metrics when use RWQueueRpcExecutor. */<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  public abstract int getWriteQueueLength();<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  /** Retrieves length of the read queue for metrics when use RWQueueRpcExecutor. */<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public abstract int getReadQueueLength();<a name="line.100"></a>
-<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span>  /** Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor. */<a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public abstract int getScanQueueLength();<a name="line.103"></a>
+<span class="sourceLineNo">089</span>  /** Retrieves the number of active replication handler. */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public abstract int getActiveReplicationRpcHandlerCount();<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  /**<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * If CoDel-based RPC executors are used, retrieves the number of Calls that were dropped<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   * from general queue because RPC executor is under high load; returns 0 otherwise.<a name="line.94"></a>
+<span class="sourceLineNo">095</span>   */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public abstract long getNumGeneralCallsDropped();<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>  /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * If CoDel-based RPC executors are used, retrieves the number of Calls that were<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * picked from the tail of the queue (indicating adaptive LIFO mode, when<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * in the period of overloade we serve last requests first); returns 0 otherwise.<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  public abstract long getNumLifoModeSwitches();<a name="line.103"></a>
 <span class="sourceLineNo">104</span><a name="line.104"></a>
-<span class="sourceLineNo">105</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public abstract int getActiveWriteRpcHandlerCount();<a name="line.106"></a>
+<span class="sourceLineNo">105</span>  /** Retrieves length of the write queue for metrics when use RWQueueRpcExecutor. */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  public abstract int getWriteQueueLength();<a name="line.106"></a>
 <span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  public abstract int getActiveReadRpcHandlerCount();<a name="line.109"></a>
+<span class="sourceLineNo">108</span>  /** Retrieves length of the read queue for metrics when use RWQueueRpcExecutor. */<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public abstract int getReadQueueLength();<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public abstract int getActiveScanRpcHandlerCount();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>}<a name="line.113"></a>
+<span class="sourceLineNo">111</span>  /** Retrieves length of the scan queue for metrics when use RWQueueRpcExecutor. */<a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public abstract int getScanQueueLength();<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  public abstract int getActiveWriteRpcHandlerCount();<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  public abstract int getActiveReadRpcHandlerCount();<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /** Retrieves the number of active write rpc handler when use RWQueueRpcExecutor. */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  public abstract int getActiveScanRpcHandlerCount();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>}<a name="line.122"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
index 7494383..b4d0bf2 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html
@@ -193,80 +193,94 @@
 <span class="sourceLineNo">185</span><a name="line.185"></a>
 <span class="sourceLineNo">186</span>  @Override<a name="line.186"></a>
 <span class="sourceLineNo">187</span>  public int getActiveRpcHandlerCount() {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    return callExecutor.getActiveHandlerCount() +<a name="line.188"></a>
-<span class="sourceLineNo">189</span>           (priorityExecutor == null ? 0 : priorityExecutor.getActiveHandlerCount()) +<a name="line.189"></a>
-<span class="sourceLineNo">190</span>           (replicationExecutor == null ? 0 : replicationExecutor.getActiveHandlerCount());<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  }<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  @Override<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  public long getNumGeneralCallsDropped() {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    return callExecutor.getNumGeneralCallsDropped();<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>  @Override<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  public long getNumLifoModeSwitches() {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    return callExecutor.getNumLifoModeSwitches();<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>  @Override<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  public int getWriteQueueLength() {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    return callExecutor.getWriteQueueLength();<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>  @Override<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  public int getReadQueueLength() {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    return callExecutor.getReadQueueLength();<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>  @Override<a name="line.213"></a>
-<span class="sourceLineNo">214</span>  public int getScanQueueLength() {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    return callExecutor.getScanQueueLength();<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>  @Override<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    return callExecutor.getActiveWriteHandlerCount();<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  }<a name="line.221"></a>
-<span class="sourceLineNo">222</span><a name="line.222"></a>
-<span class="sourceLineNo">223</span>  @Override<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  public int getActiveReadRpcHandlerCount() {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    return callExecutor.getActiveReadHandlerCount();<a name="line.225"></a>
-<span class="sourceLineNo">226</span>  }<a name="line.226"></a>
-<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span>  @Override<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  public int getActiveScanRpcHandlerCount() {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    return callExecutor.getActiveScanHandlerCount();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>  @Override<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  public CallQueueInfo getCallQueueInfo() {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    String queueName;<a name="line.235"></a>
+<span class="sourceLineNo">188</span>    return callExecutor.getActiveHandlerCount() + getActivePriorityRpcHandlerCount()<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        + getActiveReplicationRpcHandlerCount();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  @Override<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  public int getActiveGeneralRpcHandlerCount() {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    return callExecutor.getActiveHandlerCount();<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>  @Override<a name="line.197"></a>
+<span class="sourceLineNo">198</span>  public int getActivePriorityRpcHandlerCount() {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    return (priorityExecutor == null ? 0 : priorityExecutor.getActiveHandlerCount());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  @Override<a name="line.202"></a>
+<span class="sourceLineNo">203</span>  public int getActiveReplicationRpcHandlerCount() {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    return (replicationExecutor == null ? 0 : replicationExecutor.getActiveHandlerCount());<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  @Override<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  public long getNumGeneralCallsDropped() {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    return callExecutor.getNumGeneralCallsDropped();<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>  @Override<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  public long getNumLifoModeSwitches() {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    return callExecutor.getNumLifoModeSwitches();<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public int getWriteQueueLength() {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return callExecutor.getWriteQueueLength();<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>  @Override<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  public int getReadQueueLength() {<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    return callExecutor.getReadQueueLength();<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>  @Override<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  public int getScanQueueLength() {<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    return callExecutor.getScanQueueLength();<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
+<span class="sourceLineNo">231</span><a name="line.231"></a>
+<span class="sourceLineNo">232</span>  @Override<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public int getActiveWriteRpcHandlerCount() {<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    return callExecutor.getActiveWriteHandlerCount();<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
 <span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>    CallQueueInfo callQueueInfo = new CallQueueInfo();<a name="line.237"></a>
-<span class="sourceLineNo">238</span><a name="line.238"></a>
-<span class="sourceLineNo">239</span>    if(null!=callExecutor) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      queueName = "Call Queue";<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      callQueueInfo.setCallMethodCount(queueName, callExecutor.getCallQueueCountsSummary());<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      callQueueInfo.setCallMethodSize(queueName, callExecutor.getCallQueueSizeSummary());<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    }<a name="line.243"></a>
-<span class="sourceLineNo">244</span><a name="line.244"></a>
-<span class="sourceLineNo">245</span>    if(null!=priorityExecutor) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      queueName = "Priority Queue";<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      callQueueInfo.setCallMethodCount(queueName, priorityExecutor.getCallQueueCountsSummary());<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      callQueueInfo.setCallMethodSize(queueName, priorityExecutor.getCallQueueSizeSummary());<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
+<span class="sourceLineNo">237</span>  @Override<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  public int getActiveReadRpcHandlerCount() {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    return callExecutor.getActiveReadHandlerCount();<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>  @Override<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  public int getActiveScanRpcHandlerCount() {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    return callExecutor.getActiveScanHandlerCount();<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
+<span class="sourceLineNo">246</span><a name="line.246"></a>
+<span class="sourceLineNo">247</span>  @Override<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  public CallQueueInfo getCallQueueInfo() {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    String queueName;<a name="line.249"></a>
 <span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>    if(null!=replicationExecutor) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      queueName = "Replication Queue";<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      callQueueInfo.setCallMethodCount(queueName, replicationExecutor.getCallQueueCountsSummary());<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      callQueueInfo.setCallMethodSize(queueName, replicationExecutor.getCallQueueSizeSummary());<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    return callQueueInfo;<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>}<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">251</span>    CallQueueInfo callQueueInfo = new CallQueueInfo();<a name="line.251"></a>
+<span class="sourceLineNo">252</span><a name="line.252"></a>
+<span class="sourceLineNo">253</span>    if(null!=callExecutor) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      queueName = "Call Queue";<a name="line.254"></a>
+<span class="sourceLineNo">255</span>      callQueueInfo.setCallMethodCount(queueName, callExecutor.getCallQueueCountsSummary());<a name="line.255"></a>
+<span class="sourceLineNo">256</span>      callQueueInfo.setCallMethodSize(queueName, callExecutor.getCallQueueSizeSummary());<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>    if(null!=priorityExecutor) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      queueName = "Priority Queue";<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      callQueueInfo.setCallMethodCount(queueName, priorityExecutor.getCallQueueCountsSummary());<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      callQueueInfo.setCallMethodSize(queueName, priorityExecutor.getCallQueueSizeSummary());<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    if(null!=replicationExecutor) {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      queueName = "Replication Queue";<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      callQueueInfo.setCallMethodCount(queueName, replicationExecutor.getCallQueueCountsSummary());<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      callQueueInfo.setCallMethodSize(queueName, replicationExecutor.getCallQueueSizeSummary());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span>    return callQueueInfo;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>}<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
index a9abfb0..8d66107 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/DefaultOperationQuota.html
@@ -77,13 +77,13 @@
 <span class="sourceLineNo">069</span>    for (final QuotaLimiter limiter: limiters) {<a name="line.69"></a>
 <span class="sourceLineNo">070</span>      if (limiter.isBypass()) continue;<a name="line.70"></a>
 <span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span>      limiter.checkQuota(writeConsumed, readConsumed);<a name="line.72"></a>
+<span class="sourceLineNo">072</span>      limiter.checkQuota(numWrites, writeConsumed, numReads + numScans, readConsumed);<a name="line.72"></a>
 <span class="sourceLineNo">073</span>      readAvailable = Math.min(readAvailable, limiter.getReadAvailable());<a name="line.73"></a>
 <span class="sourceLineNo">074</span>      writeAvailable = Math.min(writeAvailable, limiter.getWriteAvailable());<a name="line.74"></a>
 <span class="sourceLineNo">075</span>    }<a name="line.75"></a>
 <span class="sourceLineNo">076</span><a name="line.76"></a>
 <span class="sourceLineNo">077</span>    for (final QuotaLimiter limiter: limiters) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      limiter.grabQuota(writeConsumed, readConsumed);<a name="line.78"></a>
+<span class="sourceLineNo">078</span>      limiter.grabQuota(numWrites, writeConsumed, numReads + numScans, readConsumed);<a name="line.78"></a>
 <span class="sourceLineNo">079</span>    }<a name="line.79"></a>
 <span class="sourceLineNo">080</span>  }<a name="line.80"></a>
 <span class="sourceLineNo">081</span><a name="line.81"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/8bc57a1a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
index b7a8227..b110a2c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/quotas/NoopQuotaLimiter.html
@@ -43,13 +43,13 @@
 <span class="sourceLineNo">035</span>  }<a name="line.35"></a>
 <span class="sourceLineNo">036</span><a name="line.36"></a>
 <span class="sourceLineNo">037</span>  @Override<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  public void checkQuota(long estimateWriteSize, long estimateReadSize)<a name="line.38"></a>
-<span class="sourceLineNo">039</span>      throws RpcThrottlingException {<a name="line.39"></a>
+<span class="sourceLineNo">038</span>  public void checkQuota(long writeReqs, long estimateWriteSize, long readReqs,<a name="line.38"></a>
+<span class="sourceLineNo">039</span>      long estimateReadSize) throws RpcThrottlingException {<a name="line.39"></a>
 <span class="sourceLineNo">040</span>    // no-op<a name="line.40"></a>
 <span class="sourceLineNo">041</span>  }<a name="line.41"></a>
 <span class="sourceLineNo">042</span><a name="line.42"></a>
 <span class="sourceLineNo">043</span>  @Override<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  public void grabQuota(long writeSize, long readSize) {<a name="line.44"></a>
+<span class="sourceLineNo">044</span>  public void grabQuota(long writeReqs, long writeSize, long readReqs, long readSize) {<a name="line.44"></a>
 <span class="sourceLineNo">045</span>    // no-op<a name="line.45"></a>
 <span class="sourceLineNo">046</span>  }<a name="line.46"></a>
 <span class="sourceLineNo">047</span><a name="line.47"></a>